Das Beispiel in diesem Artikel beschreibt, wie man ein JAR-Paket in Java generiert, was eine sehr praktische Technik ist. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:
Viele Java-Anfänger werden sich die Frage stellen: Kann ein in Java geschriebenes Anwendungsprogramm letztendlich eine ausführbare Datei ähnlich einer Exe erstellen? Kann sie nur über die Befehlszeile ausgeführt werden?
Im Allgemeinen gibt es zwei Methoden: Eine besteht darin, ein ausführbares JAR-Dateipaket zu erstellen, das dann wie eine CHM-Datei ausgeführt werden kann, und die andere darin, JET zum Kompilieren zu verwenden. Aber JET muss mit Geld gekauft werden, und es wird gesagt, dass JET nicht alle Java-Programme in ausführbare Dateien kompilieren kann und seine Leistung dadurch beeinträchtigt wird. Daher ist die Verwendung der Methode zur Erstellung eines ausführbaren JAR-Dateipakets die beste Wahl, ganz zu schweigen davon, dass dadurch die plattformübergreifenden Eigenschaften von Java beibehalten werden können.
Werfen wir einen Blick darauf, was ein JAR-Dateipaket ist:
1. JAR-Dateipaket
Die JAR-Datei ist eine Java-Archivdatei. Wie der Name schon sagt, ist ihre Anwendung eng mit Java verwandt und ein Dokumentformat von Java. Eine JAR-Datei ist einer ZIP-Datei sehr ähnlich – genauer gesagt handelt es sich um eine ZIP-Datei, daher wird sie als Dateipaket bezeichnet. Der einzige Unterschied zwischen einer JAR-Datei und einer ZIP-Datei besteht darin, dass der Inhalt der JAR-Datei eine META-INF/MANIFEST.MF-Datei enthält, die automatisch erstellt wird, wenn die JAR-Datei generiert wird. Wenn wir beispielsweise einige Dateien mit der folgenden Verzeichnisstruktur haben:
==
-- prüfen
--Test.class
Komprimieren Sie es in eine ZIP-Datei test.zip. Die interne Verzeichnisstruktur dieser ZIP-Datei ist:
test.zip
`-- testen
`--Test.class
Wenn wir den JDK-JAR-Befehl verwenden, um daraus ein JAR-Dateipaket test.jar zu machen, lautet die interne Verzeichnisstruktur dieser JAR-Datei:
test.jar
|-- META-INF
|. `-- MANIFEST.MF
`-- testen
`--Test.class
2. Erstellen Sie ein ausführbares JAR-Dateipaket
Die Erstellung eines ausführbaren JAR-Dateipakets zur Verteilung Ihres Programms ist die häufigste Verwendung von JAR-Dateipaketen.
Ein Java-Programm besteht aus mehreren .class-Dateien. Diese .class-Dateien müssen entsprechend den Paketen, zu denen sie gehören, in Hierarchien und Verzeichnissen gespeichert werden. Sie müssen außerdem das Stammverzeichnis aller verwendeten Pakete für die Umgebungsvariable CLASSPATH oder den Parameter -cp des Java-Befehls angeben Sie müssen beim Ausführen zur Konsole gehen. Verwenden Sie zum Ausführen den Java-Befehl. Wenn Sie zum direkten Ausführen doppelklicken müssen, müssen Sie eine Windows-Batchdatei (.bat) oder ein Linux-Shell-Programm schreiben. Daher sagen viele Leute, dass Java eine Programmiersprache ist, die für Entwickler und Benutzer praktisch ist.
Wenn der Entwickler tatsächlich ein ausführbares JAR-Dateipaket erstellen und es dem Benutzer übergeben kann, ist es für den Benutzer praktisch, es zu verwenden. Bei der Installation von JRE (Java Runtime Environment) unter Windows ordnet die Installationsdatei die .jar-Datei zum Öffnen der Datei javaw.exe zu. Dann muss der Benutzer bei einem ausführbaren JAR-Dateipaket nur darauf doppelklicken, um das Programm auszuführen, was genauso praktisch ist wie das Lesen einer .chm-Datei (.chm-Dateien werden standardmäßig von hh.exe geöffnet). Der Schlüssel liegt nun darin, wie man dieses ausführbare JAR-Dateipaket erstellt.
Um ein ausführbares JAR-Dateipaket zu erstellen, müssen Sie den Befehl jar mit cvfm-Parametern verwenden. Am Beispiel des obigen Testverzeichnisses lautet der Befehl wie folgt:
jar cvfm test.jar manifest.mf test
Hier sind die beiden Dateien test.jar und manifest.mf die entsprechenden Parameter f bzw. m. Das Highlight ist manifest.mf. Denn zum Erstellen eines ausführbaren JAR-Dateipakets reicht es nicht aus, eine manifest.mf-Datei anzugeben, da MANIFEST ein Merkmal des JAR-Dateipakets ist. Sowohl ausführbare JAR-Dateipakete als auch nicht ausführbare JAR-Dateipakete enthalten MANIFEST. Der Schlüssel liegt im MANIFEST des ausführbaren JAR-Dateipakets, das das Main-Class-Element enthält. Dies ist im MANIFEST-Format wie folgt geschrieben:
Hauptklasse: Der vollständige Name der ausführbaren Hauptklasse (einschließlich Paketname)
Angenommen, dass Test.class im obigen Beispiel zum Testpaket gehört und eine ausführbare Klasse ist (mit der öffentlichen statischen Methode void main(String[]) definiert), dann kann manifest.mf wie folgt bearbeitet werden:
Hauptklasse: test.Test <Enter>
Diese manifest.mf kann an einem beliebigen Ort platziert werden oder ein anderer Dateiname sein. Sie muss lediglich eine Zeile mit der Bezeichnung „Main-Class: test.Test“ enthalten und die Zeile endet mit einem Wagenrücklaufzeichen. Nach dem Erstellen der Datei manifest.mf sieht unsere Verzeichnisstruktur wie folgt aus:
==
|-- Test
|. `-- Test.class
`--manifest.mf
Zu diesem Zeitpunkt müssen Sie in das übergeordnete Verzeichnis des Testverzeichnisses gehen und mit dem Befehl jar ein JAR-Dateipaket erstellen. Das heißt, in dem Verzeichnis, das in der Verzeichnisstruktur durch „==“ dargestellt wird, verwenden Sie den folgenden Befehl:
jar cvfm test.jar manifest.mf test
Anschließend wird test.jar im Verzeichnis „==“ erstellt. Dieses test.jar ist das ausgeführte JAR-Dateipaket. Verwenden Sie beim Ausführen einfach den Befehl java -jar test.jar.
Es ist zu beachten, dass das erstellte JAR-Dateipaket eine vollständige Verzeichnisstruktur enthalten muss, die der Paketstruktur des Java-Programms entspricht, genau wie im obigen Beispiel. Die durch Main-Class angegebene Klasse muss außerdem ein vollständiger Klassenname einschließlich des Paketpfads sein, z. B. test.Test im obigen Beispiel. Sie können diese Klasse mit java <Klassenname> ausführen, bevor sie in eine JAR-Datei gepackt wird Das heißt, im obigen Beispiel kann Java test.Test korrekt ausgeführt werden (natürlich nur, wenn der CLASSPATH korrekt ist).
Ich hoffe, dass dieser Artikel für die Java-Programmierung aller hilfreich sein wird.