wake-up-neo.net

"Konnte die Hauptklasse nicht finden" beim Ausführen der von Eclipse exportierten Jar

Ich habe ein Java-Projekt, das perfekt funktioniert, wenn Sie es von Eclipse aus ausführen. Wenn ich versuche, es entweder in einen "JAR file" oder "Runnable JAR file" zu exportieren, wird die .jar-Datei erstellt, aber wenn ich darauf doppelklicke, um zu versuchen, das Programm auszuführen, wird mir eine Fehlermeldung angezeigt 

"Could not find the main class: package.MainClassName. Program will exit."

Wie bereits erwähnt, habe ich versucht, in beide JAR-Optionen zu exportieren. Ich habe die richtige Klasse angegeben, in der sich die Hauptmethode befindet. Wenn ich die tatsächlichen Dateien in der .jar-Datei durchsehe, scheint alles in Ordnung zu sein - das Manifest sieht etwa so aus:

Manifest-Version: 1.0
Main-Class: package.MainClassName
(blank line)

und befindet sich im Ordner META-INF. Es gibt einen Ordner mit meinem Paketnamen, der alle .class-Dateien enthält, einschließlich der Klasse, die die Hauptmethode enthält. Einige Bild- und Textdateien, die ich verwende, werden auch in der JAR-Datei angezeigt.

Das eigentliche Programm ist nicht zu kompliziert - es ist ein einfaches "Schlangen" -Spiel mit Swing (und der Code funktioniert alles, wenn es von Eclipse ausgeführt wird).

Irgendwelche Ideen, was diesen Fehler verursacht und wie ich ihn beheben kann? Lassen Sie mich wissen, ob ich weitere Informationen geben sollte.

23
scaevity

Ok, ich habe es endlich geschafft. Wenn ich die JRE 6 anstelle von 7 verwende, funktioniert alles super. Keine Ahnung warum, aber es funktioniert.

6
scaevity

Stellen Sie sicher, dass Sie Ihre Anwendung so starten können:

Java -cp myjarfile.jar snake.Controller

Ich lese gerade wenn ich darauf doppelklicke - das klingt nach einem Konfigurationsproblem bei Ihrem Betriebssystem. Sie doppelklicken auf die Datei in einem Windows Explorer-Fenster? Versuchen Sie es mit dem Befehl von einer Konsole/einem Terminal aus auszuführen

Java -jar myjarfile.jar

Weiterführende Literatur


Das Manifest muss mit einer neuen Zeile enden. Bitte überprüfen Sie Ihre Datei, eine fehlende neue Zeile führt zu Problemen.

19
Andreas_D

Führen Sie es in der Befehlszeile folgendermaßen aus:

Java -jar /path/to/your/jar/jarFile.jar
5
MobileMon

Hatten Sie versucht, eine JAR-Datei manuell zu erstellen, anstatt Eclipse zu verwenden. Versuchen Sie die folgenden Schritte, hoffentlich hilft das:

In Anbetracht dessen, dass Ihre Verzeichnisstruktur so aussieht: 

 TicTacToe(Your Project Name I mean)
 |              |                  |
src            bin             manifest.txt
             |    |
           icons  tictactoe

Angenommen, meine Hauptklasse ist BeginGame innerhalb des Pakets tictactoe, daher schreibe ich in meine manifest.txt-Datei folgendes: 

Main-Class: tictactoe.BeginGame

Denken Sie an das Leerzeichen zwischen den Doppelpunkten : und dem Paketnamen, d. H. tictactoe, und drücken Sie unmittelbar nach BeginGame die Eingabetaste, und speichern Sie die Datei.

Gehen Sie nun in Ihrem Befehl Prompt zum Speicherort des Ordners bin. Ich beschreibe meine Seite wie folgt: 

C:\Mine\Eclipse\TicTacToe\bin>jar -cfm ..\tictactoe.jar ..\manifest.txt tictactoe icons
  • Hier wird das erste Argument, d.h. ..\tictactoe.jar, verwendet, um zu sagen, dass tictactoe.jar eine Ebene höher erstellt wird, d. H. In TicTacToe Folder.
  • Das zweite Argument ..\manifest.txt bedeutet, dass sich die Datei manifest.txt eine Ebene nach oben befindet, d. H. In TicTacToe Folder.
  • Das dritte und vierte Argument tictactoe und icons bedeutet, dass diese beiden Ordner der .jar-Datei hinzugefügt werden, da sie im bin-Ordner abgelegt werden, sodass sie so verwendet werden, wie sie sind. Drücken Sie jetzt die Eingabetaste.

Versuchen Sie nun, Ihre .jar-Datei auszuführen, die so im Project Folder (in meinem Fall TicTacToe-Ordner) erstellt wurde. 

Hoffentlich klappt das.

5
nIcE cOw

Haben Sie Ihr Projekt/Ihre Hauptklasse umbenannt (z. B. durch Refactoring)? Wenn ja, ist Ihre Launch Configuration möglicherweise falsch eingerichtet (z. B. in Bezug auf die old main-Klasse oder -Konfiguration). Auch wenn der Projektname im Dialogfeld "Exportierbares Glas" angezeigt wird, kann bei näherer Betrachtung ein nicht übereinstimmender Hauptklassenname angezeigt werden.

Gehen Sie zu "Eigenschaften-> Ausführen/Debug-Einstellungen" Ihres Projekts und stellen Sie sicher, dass für Ihre Launch-Konfiguration (die zum Exportieren von ausführbarer jar verwendet wurde) der richtige Name des ProjektsUNDfür Ihre Hauptklasse festgelegt ist name.space.of.your.project/YouMainClass.

1
count0

Neulich bin ich auf die gleichen Probleme gestoßen, und es dauerte Tage, bis alles funktionierte. Die Fehlermeldung war "Die Hauptklasse konnte nicht gefunden werden", aber ich kann die ausführbare jar, die von Eclipse exportiert wurde, auf anderen Windows-Maschinen ohne ausführen irgendein Problem.

Die Lösung bestand darin, sowohl die x64- als auch die x86-Version derselben Version von JRE zu installieren. Die Pfadumgebungsvariable wurde auf die x64-Version verwiesen. Keine Ahnung warum, aber es hat für mich funktioniert.

0
feng63600

Klicken Sie mit der rechten Maustaste auf das Projekt. Gehe zu Eigenschaften. Klicken Sie auf Run/Debug Settings. Löschen Sie nun die Laufkonfiguration Ihrer Hauptklasse, die Sie ausführen möchten .. __ Wenn Sie nun erneut auf Ausführen klicken, funktionieren die Dinge gut.

0
user3374766

Für netbeans Benutzer ist dieses Problem so einfach:

1.Gehen Sie zu Ihrem Projekt und klicken Sie mit der rechten Maustaste, und wählen Sie Eigenschaften aus

2.Klicken Sie auf Ausführen und klicken Sie auch auf Browser.

3.Wählen Sie Ihre Bilder aus, die zuerst angezeigt werden sollen.

0
kegs Production