Erstellen und Ausführen einer . JAR-Datei im Linux-Terminal
Ein JAR (Java ARchive) ist ein plattformunabhängiges Dateiformat, das verwendet wird, um viele Java-Klassendateien und zugehörige Metadaten und Ressourcen wie Text, Bilder usw. in einer einzigen Datei für die Verteilung zu aggregieren.
Es ermöglicht Java-Laufzeitumgebungen, eine gesamte Anwendung effizient in einer Archivdatei bereitzustellen, und bietet viele Vorteile wie Sicherheit, seine Elemente können komprimiert werden, verkürzen die Download-Zeiten, ermöglichen die Paketversiegelung und Versionierung und unterstützen die Portabilität. Es unterstützt auch das Verpacken von Erweiterungen.
In diesem Artikel zeigen wir, wie Sie eine einfache Java-Anwendung erstellen und in einer JAR-Datei bündeln, und zeigen, wie Sie eine .jar-Datei über das Linux-Terminal ausführen.
Zu diesem Zweck müssen Sie das Java-Befehlszeilentool installiert haben, um eine Java-Anwendung zu starten, und das Flag -jar, um ein Programm auszuführen, das in einer JAR-Datei gekapselt ist. Wenn dieses Flag verwendet wird, ist die angegebene JAR-Datei die Quelle aller Benutzerklassen, und andere Einstellungen für den Klassenpfad werden ignoriert.
So erstellen Sie eine JAR-Datei unter Linux
1. Beginnen Sie zunächst damit, eine einfache Java-Klasse mit einer Hauptmethode für eine Anwendung namens TecmintApp zu Demonstrationszwecken zu schreiben.
$ vim TecmintApp.java
Kopieren Sie den folgenden Code, und fügen Sie ihn in TecmintApp.java Datei ein.
public class TecmintApp {
public static void main(String[] args){
System.out.println(" Just executed TecmintApp! ");
}
}
Speichern Sie die Datei, und schließen Sie sie.
2. Als nächstes müssen wir die Klasse kompilieren und in eine JAR-Datei packen, indem wir die Dienstprogramme javac und jar verwenden, wie gezeigt.
$ javac -d . TecmintApp.java
ls
jar cvf tecmintapp.jar TecmintApp.class
ls
3. Sobald tecmintapp.jar erstellt wurde, können Sie die Datei jetzt mit dem Java-Befehl wie gezeigt ausführen.
$ java -jar tecmintapp.jar
no main manifest attribute, in tecmintapp.jar
Bei der Ausgabe des obigen Befehls ist ein Fehler aufgetreten. Die JVM (Java Virtual Machine) konnte unser main-Manifest-Attribut nicht finden, daher konnte sie die main-Klasse, die die main-Methode enthält (public static void main (String[] args)), nicht finden.
Die JAR-Datei sollte über ein Manifest verfügen, das eine Zeile im Format Main-Class:classname enthält, die die Klasse mit der main-Methode definiert, die als Ausgangspunkt für unsere Anwendung dient.
4. Um den obigen Fehler zu beheben, müssen wir die JAR-Datei aktualisieren, um ein Manifest-Attribut zusammen mit unserem Code einzuschließen. Lassen Sie uns ein MANIFEST erstellen. MF-Datei.
$ vim MANIFEST.MF
Kopieren Sie die folgende Zeile, und fügen Sie sie in MANIFEST ein. MF-Datei.
Main-Class: TecmintApp
Speichern Sie die Datei und fügen Sie die Datei MANIFEST hinzu. MF zu unserem tecmintapp.jar mit dem folgenden Befehl.
$ jar cvmf MANIFEST.MF tecmintapp.jar TecmintApp.class
5. Wenn wir schließlich die JAR-Datei erneut ausführen, sollte sie das erwartete Ergebnis liefern, wie in der Ausgabe gezeigt.
$ java -jar tecmintapp.jar
Just executed TecmintApp!
Weitere Informationen finden Sie in den Manpages java, javac und jar command.
$ man java
man javac
man jar
Das ist alles! In diesem kurzen Artikel haben wir erklärt, wie man eine einfache Java-Anwendung erstellt und sie in einer JAR-Datei bündelt, und gezeigt, wie man eine .jar Datei vom Terminal aus ausführt. Wenn Sie Fragen oder ergänzende Ideen haben, verwenden Sie das untenstehende Feedback-Formular.