it-swarm.com.de

Warum konnte das Hauptattributattribut nicht aus einer JAR-Datei geladen werden?

Ich habe auf diese Weise eine JAR-Datei erstellt jar cf jar-file input-files. Jetzt versuche ich es auszuführen. Das Ausführen funktioniert nicht (der Befehl jre wird nicht gefunden):

jre -cp app.jar MainClass

Das funktioniert auch nicht:

Java -jar main.jar

(Das Main-Class-Manifestattribut konnte nicht aus main.jar geladen werden.).

Das habe ich auch herausgefunden

So führen Sie eine Anwendung aus, die als .__ gepackt ist. JAR-Datei (Version 1.2 - erfordert Manifest-Header der Hauptklasse)

Was ist der "Header der Hauptklasse"? Wie erstelle ich es und wo stelle ich es ab?

85
Roman

Ich bin mir nicht sicher, ob ich Ihre Symptome glaube:

  • Wenn der Befehl jre nicht gefunden wird, sollte bei der Ausführung von jre -cp app.jar derselbe Fehler angezeigt werden
  • Das Hinzufügen einer JAR -Datei zum Klassenpfad sollte nicht zu dem angezeigten Fehler führen

Ich würde erwarten, dass Sie diesen Fehler sehen, wenn Sie Folgendes ausführen:

Java -jar app.jar

Der Header der Hauptklasse muss im Manifest für die JAR-Datei enthalten sein. Hierbei handelt es sich um Metadaten zu anderen erforderlichen Bibliotheken. In der Sun-Dokumentation erfahren Sie, wie Sie ein entsprechendes Manifest erstellen. Grundsätzlich müssen Sie eine Textdatei erstellen, die eine Zeile wie diese enthält:

Main-Class: MainClass

Dann renne

jar cfm app.jar manifest.txt *.class
62
Jon Skeet
  1. setze den Klassenpfad und kompiliere

    javac -classpath "C:\Programme\Java\jdk1.6.0 _ updateVersion \ tools.jar" yourApp.Java

  2. erstellen Sie manifest.txt

    Hauptklasse: yourApp newline

  3. erstellen Sie IhreApp.jar 

    jar cvf0m yourApp.jar manifest.txt yourApp.class

  4. führen Sie yourApp.jar aus

    Java -Jar IhreApp.Jar

35
weirdFactory

Sie können mit laufen:

Java -cp .;app.jar package.MainClass

Es funktioniert für mich, wenn die JAR-Datei kein Manifest enthält.

9
Dainius

Ich habe diesen Fehler erhalten, und zwar weil ich die Argumente in der falschen Reihenfolge hatte:

RICHTIG

Java maui.main.Examples tagging -jar maui-1.0.jar 

FALSCH

Java -jar maui-1.0.jar maui.main.Examples tagging 
6

Um sicher zu gehen, dass Sie die ausführbare JAR-Datei mit der entsprechenden Manifestdatei ordnungsgemäß erstellt haben, können Sie sie mit Eclipse erstellen. In Ihrem Eclipse-Projekt wählen Sie im Grunde nur Datei/Exportieren aus dem Menü und folgen den Anweisungen. 

Auf diese Weise können Sie sicher sein, dass Ihre JAR-Datei korrekt ist und woanders nachschauen kann, wenn noch ein Problem vorliegt. Der Vorgang ist vollständig in FAQ beschrieben. Wie erstelle ich eine ausführbare JAR-Datei für ein eigenständiges SWT-Programm?.

1
Greg Burdett

Versuchen

Java -cp .:mail-1.4.1.jar JavaxMailHTML 

keine manifest-Datei erforderlich.

0
user4581964

Ich habe den gleichen Fehler erhalten, als ich lief:
jar cvfm test.jar Test.class Manifest.txt

Was es auflöste, war dieses:
jar cvfm test.jar Manifest.txt Test.class

Mein Manifest hat den in Oracle-Dokumenten angegebenen Einstiegspunkt (stellen Sie sicher, dass am Ende der Datei ein neues Zeilenzeichen steht):
Hauptklasse: Test

0
ObviousChild

Ich hatte das gleiche Problem. Dieser Unix-Befehl kann die Hauptklasse nicht finden. Dies liegt daran, dass JDK-Versionen zur Laufzeit und zur Kompilierzeit unterschiedlich sind. Machen Sie den Jar durch Eclipse, nachdem Sie die Java-Compiler-Version geändert haben. Der folgende Link hat mir geholfen.

http://crunchify.com/exception-in-thread-main-Java-lang-unsupportedclassversionerror-comcrunchifymain-unsupported-major-minor-version-51-0/

Führen Sie das Jar aus, das nach diesem Schritt erstellt wurde, und führen Sie es dann aus

0
Harshita Sethi

Wenn Ihr Klassenpfad im Manifest vollständig angegeben ist, benötigen Sie Möglicherweise benötigen Sie die letzte Version der Java-Laufzeitumgebung . 

0

Ich entdeckte, dass ich diesen Fehler auch in NetBeans hatte. Ich hoffe, das Folgende ist hilfreich.

  1. Stellen Sie sicher, dass Sie, wenn Sie zur Projektkonfiguration gehen, die Hauptklasse festlegen, die Sie ausführen möchten.
  2. Erstellen Sie einen Build oder Clean Build
  3. Platzieren Sie die JAR-Datei an der gewünschten Stelle und versuchen Sie es erneut: Java -jar "YourProject.jar" in der Befehlszeile.

Dies war das Problem, das ich bekam, weil ich andere "Test" -Programme hatte, die ich in NetBeans verwendete, und ich sicherstellen musste, dass die Hauptklasse unter dem Teil "Ausführen" der Projektkonfiguration korrekt festgelegt wurde.

viele Segnungen.... John P

0
john p

Wenn Sie Eclipse verwenden, versuchen Sie es unten: 1. Klicken Sie mit der rechten Maustaste auf das Projekt -> wählen Sie Exportieren 2. Wählen Sie Runnable Jar-Datei im Exportziel auswählen 3. Geben Sie den Namen des Behälters ein und wählen Sie "Paket erforderlich ..." (zweiter Radioknopf) -> Fertig stellen

Hoffe das hilft...!

0
Barani r