Was ist der Unterschied bei der Sonnenfinsternis zwischen dem Exportieren als JAR-Datei und dem Exportieren als ausführbare JAR-Datei? Sind sie nicht beide lauffähig? Was sind die Vor- und Nachteile von jedem?
87
Das ausführbare JAR enthält eine MANIFEST.MF-Datei, die die Hauptklasse definiert, die ausgeführt werden soll, wenn das JAR ausgeführt wird.
Nicht ausführbare Jars sind nur Bibliotheken von Klassen, die dem Klassenpfad hinzugefügt werden können, damit Code wiederverwendet wird (er enthält auch die Manifestdatei, aber keine Hauptklasse dort).
Eine ausführbare JAR-Datei ist eine JAR-Datei mit einer eingebetteten Manifest-Datei, die die Deklaration "Main-Class:" enthält. Die "Hauptklasse" muss definiert werden, damit die Java-Laufzeit weiß, welche Klasse aufgerufen werden soll, wenn das JAR "ausgeführt" wird. Wenn ein JAR kein Manifest mit der "Hauptklasse" enthält: Es wird nicht als "ausführbares JAR" betrachtet - es ist nur eine Bibliothek mit Java-Code.
Ich würde vermuten, dass dies der Unterschied ist, wie Eclipse das Glas exportiert, aber nicht 100% sicher.
Weitere Informationen finden Sie unter diesem Link: http://www.skylit.com/javamethods/faqs/createjar.html
quelle
Bei der Standard-JAR-Datei müssen Sie die Klasse mit der Hauptmethode in der Befehlszeile angeben, wenn Sie das JAR ausführen. Bei einer ausführbaren JAR gibt es eine Manifestdatei, die diese Informationen enthält, sodass Sie sie einfach eingeben
java -jar myRunnable.jar
oder einfach doppelklicken können.quelle
In meinem Fall habe ich als JAR exportiert, als ich die gesamte Hauptklasse und das gesamte Pfadverzeichnis der Bibliotheken in der Datei manifest.mf angegeben hatte. Wenn viele Anwendungen dieselbe Bibliothek verwenden, ist es nicht erforderlich, die gemeinsam genutzte Bibliothek für jedes JAR zu exportieren. Es macht das Laufen Glas schneller. Aufgrund von Konfigurationsproblemen in verschiedenen Serverklassenpfaden kann jedoch häufig nicht auf die Bibliothek zugegriffen werden. In diesem Fall ist es sinnvoll, das ausführbare JAR zu exportieren, wodurch die Ausführung der Datei langsam und umfangreich wird.
quelle