Wéi erstellen an ausféieren eng .Jar Datei am Linux Terminal


E JAR (Java ARchive) ass plattformonofhängeg Dateiformat benotzt fir vill Java-Klassdateien an assoziéiert Metadaten a Ressourcen wéi Text, Biller, etc, an eng eenzeg Datei fir Verdeelung ze aggregéieren.

Et erlaabt Java Runtimes eng ganz Applikatioun effizient an enger Archivdatei z'installéieren, a bitt vill Virdeeler wéi Sécherheet, seng Elementer kënne kompriméiert ginn, d'Downloadzäiten verkierzen, erlaabt d'Versiegelung an d'Versioun vum Package, ënnerstëtzt Portabilitéit. Et ënnerstëtzt och Verpakung fir Extensiounen.

An dësem Artikel wäerte mir weisen wéi een eng einfach Java Applikatioun erstellt an se an eng JAR-Datei bündelt, a weisen wéi een .jar-Datei vum Linux-Terminal ausféiert.

Fir dëst ze maachen, musst Dir Java Kommandozeil Tool installéiert hunn fir eng Java Applikatioun ze lancéieren, an de -jar Fändel fir e Programm auszeféieren deen an enger JAR Datei verschlësselt ass. Wann dëse Fändel benotzt gëtt, ass déi spezifizéiert JAR-Datei d'Quell vun alle Benotzerklassen, an aner Klassewee-Astellunge ginn ignoréiert.

Wéi erstellen ech eng JAR Datei am Linux

1. Éischt Start vun engem schreiwen eng einfach Java Klass mat engem Haapt Method fir eng Applikatioun genannt TecmintApp, fir Demonstratioun Zweck.

$ vim TecmintApp.java

Kopéiert a paste de folgende Code an d'TecmintApp.java Datei.

public class TecmintApp {
	public static void main(String[] args){
		System.out.println(" Just executed TecmintApp! ");
	}
}

Späichert d'Datei a maach se zou.

2. Als nächst musse mir d'Klass kompiléieren a packen an eng JAR Datei mat den Javac a Jar Utilities wéi gewisen.

$ javac -d . TecmintApp.java
$ ls
$ jar cvf tecmintapp.jar TecmintApp.class
$ ls

3. Eemol tecmintapp.jar erstallt, elo kënnt Dir d'Datei ausschalten mat Java Kommando wéi gewisen.

$ java -jar tecmintapp.jar

no main manifest attribute, in tecmintapp.jar

Vun der Ausgab vum uewe genannte Kommando hu mir e Feeler begéint. D'JVM (Java Virtual Machine) konnt eisen Haaptmanifest Attribut net fannen, dofir konnt et d'Haaptklass net lokaliséieren déi d'Haaptmethod enthält (ëffentlech statesch Void Main (String [] args)).

D'JAR-Datei soll e Manifest hunn, deen eng Zeil an der Form Main-Class: Classname enthält, déi d'Klass definéiert mat der Haaptmethod, déi als Startpunkt vun eiser Applikatioun déngt.

4. Fir den uewe genannte Feeler ze fixéieren, musse mir d'JAR-Datei aktualiséieren fir e Manifest Attribut zesumme mat eisem Code ze enthalen. Loosst eis eng MANIFEST.MF Datei erstellen.

$ vim MANIFEST.MF

Kopéiert a paste déi folgend Zeil op MANIFEST.MF Datei.

Main-Class:  TecmintApp

Späichert d'Datei a loosst eis d'Datei MANIFEST.MF op eise tecmintapp.jar addéieren andeems Dir folgend Kommando benotzt.

$ jar cvmf MANIFEST.MF tecmintapp.jar TecmintApp.class

5. Endlech, wa mir d'JAR-Datei nach eng Kéier ausgefouert hunn, sollt et dat erwaart Resultat produzéieren wéi an der Ausgab.

$ java -jar tecmintapp.jar

Just executed TecmintApp!

Fir méi Informatioun, kuckt d'Java, Java, a Jar Kommando Man Säiten.

$ man java
$ man javac
$ man jar

Referenz: Verpackungsprogrammer an JAR Dateien.

Dat ass alles! An dësem kuerzen Artikel hu mir erkläert wéi een eng einfach Java-Applikatioun erstellt an se an eng JAR-Datei bündelt, a demonstréiert wéi een eng .jar-Datei vum Terminal ausféiert. Wann Dir Froen hutt oder zousätzlech Iddien fir ze deelen, benotzt de Feedbackformular hei ënnen.