Ich habe eine .Java-Datei mit dem Namen Main.Java geschrieben und mit dem Javac in der Windows-Eingabeaufforderung kompiliert. Der Compiler erstellt mehrere .class-Dateien (genannt Main.class, Main $ 1.class & Main $ 2.class - vermutlich, weil ich in meiner Main.Java-Datei anonyme innere Klassen habe). Ich versuche, eine ausführbare .jar-Datei zu erstellen, sodass ich auf eine Verknüpfung doppelklicken kann, um diese Anwendung auszuführen (dies ist eine Java-Swing-Anwendung). Ich bin jedoch nicht erfolgreich, wenn ich zum Verzeichnis der drei Klassendateien navigiere und Folgendes eingebe:
jar cfv file.jar Main.class Main$1.class Main$2.class
Die Eingabeaufforderung gibt dann diesen Text aus:
added manifest
adding: Main.class(in 4871) (out = 2848)(deflated 41%)
adding: Main$1.class(in 1409) (out = 833)(deflated 40%)
adding: Main$2.class(in 1239) (out = 767)(deflated 38%)
Trotzdem, wenn ich auf die Datei file.jar im Windows Explorer doppelklicke, wird einfach nichts passiert. Es wird keine Swing-Anwendung geöffnet.
Hoffentlich kann mir jemand dabei helfen. Vielen Dank
Am besten ... SL
Sie müssen den Einstiegspunktschalter -e
(mit dem Namen der Klasse, die die main()
-Methode enthält) als solche verwenden:
jar cfve file.jar Main Main.class Main$1.class Main$2.class
Irgendetwas muss dem Java sagen, welche Klasse automatisch gestartet werden sollte. Das ist das Manifest - siehe Beschreibung hier Sie müssen die Manifest.mf in Ihr Glas packen.
jar xf fileName.jar
META-INF
& Copyright.mk
Dateien generiertJAD.exe
von Google (ZIP-Datei) herunter.jad.exe
jad.exe
enthält.jad fileName.clas
s aus (der Klassenname, den Sie ändern möchten).fileName.jad
-Datei wird generiert und in fileName.Java
umbenannt.fileName.Java
(wenn er auf eine andere Klassendatei verweist, konfigurieren Sie ihn in Eclipse entsprechend)jar cf fileName.jar
aus (* steht für alle Klassendateien, unabhängig von den Verzeichnissen).