2012-04-15 19 views
0

Ich habe eine .jar von Eclipse generiert, die ich nicht auf einem anderen Computer (mit Windows XP) ausführen kann. Die Meldung "Die Hauptklasse konnte nicht gefunden werden. Programm wird beendet" wird angezeigt. Dieser Computer funktioniert problemlos mit einem anderen von Netbeans generierten JAR. Es ist also kein Problem mit JRE, nehme ich an. Ich habe JRE aktualisiert, aber es hat nichts verändert. Was ist das Problem?"Konnte die Hauptklasse nicht finden" Fehler

UPDATE: Ich habe vergessen zu erwähnen, dass ich eine lauffähige JAR-Datei erstellt habe. Auf zwei anderen Computern funktioniert es gut (Win 7 und XP), aber auf diesem bestimmten nicht.

UPDATE 2: Es ist eine Swing-Anwendung, so dass die JAR durch Doppelklicken ausgeführt wird.

+0

Versuchen Sie eine 'main' Methode einer Klasse auszuführen? – Bohemian

+0

Ja. Ich habe einen JFrame mit Hauptmethode. – user1091733

+0

Sie haben recht - ich hatte keine Zeit über alles zu lesen, was mit der Funktionalität von stackoverflow zusammenhängt und ich dachte, dass das Klicken auf "Diese Antwort ist nützlich" das Ding macht. Guter Rat für die Zukunft :) – user1091733

Antwort

1

Überprüfen Sie den Inhalt des Manifests. Die Zeile Main-Class: foo.Bar muss einem/foo/Bar.class-Eintrag in der JAR-Datei entsprechen, und foo.Bar.java muss eine entsprechende main-Methode enthalten. Außerdem müssen alle Glasreferenz in der Zeile Class-Path: kopiert werden.

Verwenden Sie "jar tvf my.jar", um das Layout zu sehen.

+0

Aber selbst wenn etwas mit dem Klassenpfad nicht stimmt, wie ist es möglich, dass es auf anderen Computern gut läuft? Hier ist mein Manifest (sehr einfache App mit einer Klasse Versuch im Paket main) Manifest-Version: 1.0 Klassenpfad:. Haupt-Klasse: main.Try – user1091733

+0

Sie müssen alle Gläser, auf die in der Klasse-Pfad verwiesen wird, ebenfalls kopieren. –

+0

Aber wie Sie sehen können, gibt es keine zusätzlichen JARs im ClassPath (es gibt nur einen Punkt). App ist sehr einfach - eine Klasse, die von JFrame mit einem JButton, keinem zusätzlichen Code erbt. – user1091733

0

Sie müssen das Glas in den Classpath setzen, wie folgt aus:

java -classpath "C:\somepath\myapp.jar" mypackage.MyClass 
+0

Wie ich schrieb, hatte dieser Computer keine Probleme mit dem Ausführen von Gläsern, sondern von Netbeans generiert, also denke ich, dass das Problem nicht mit Classpath verbunden ist. – user1091733

+0

@ user1091733 Klassenpfad ist jedoch nicht für einen Computer spezifisch. Es ist spezifisch für jede einzelne Ausführung von Java. Vielleicht liegt das Problem nicht im Klassenpfad, aber wir können Ihr Wort nicht akzeptieren, wenn Sie möchten, dass wir Ihr Problem lösen. –

Verwandte Themen