Unsaon Paghimo ug Pagpatuman sa usa ka .Jar File sa Linux Terminal


Ang JAR (Java ARchive) kay platform-independent nga format sa file nga gigamit sa pag-aggregate sa daghang Java class files ug kaubang metadata ug resources sama sa text, images, etc, ngadto sa usa ka file para sa distribution.

Gitugotan niini ang Java runtimes nga episyenteng mag-deploy sa tibuok aplikasyon sa usa ka archive file, ug maghatag ug daghang benepisyo sama sa seguridad, ang mga elemento niini mahimong ma-compress, mupamubo sa mga oras sa pag-download, nagtugot sa package sealing ug versioning, nagsuporta sa portability. Gisuportahan usab niini ang pagputos alang sa mga extension.

Niining artikuloha, ipakita namo kung unsaon paghimo ug simple nga Java application ug i-bundle kini sa JAR file, ug ipakita kung unsaon pag-execute og .jar file gikan sa terminal sa Linux.

Aron mahimo kini, kinahanglan nimo nga adunay java command line tool nga na-install aron maglansad sa usa ka aplikasyon sa Java, ug ang bandila nga -jar aron ma-execute ang usa ka programa nga gisulod sa usa ka JAR file. Kung gigamit kini nga bandila, ang gipiho nga JAR file mao ang gigikanan sa tanan nga mga klase sa gumagamit, ug ang ubang mga setting sa agianan sa klase wala tagda.

Giunsa Paghimo ang usa ka JAR File sa Linux

1. Una magsugod pinaagi sa pagsulat sa usa ka yano nga Java nga klase uban sa usa ka nag-unang pamaagi alang sa usa ka aplikasyon nga gitawag TecmintApp, alang sa demonstrasyon katuyoan.

$ vim TecmintApp.java

Kopyaha ug idikit ang mosunod nga code sa TecmintApp.java file.

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

I-save ang file ug isira kini.

2. Sunod, kinahanglan natong i-compile ug i-pack ang klase ngadto sa JAR file gamit ang javac ug jar utilities sama sa gipakita.

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

3. Sa higayon nga ang tecmintapp.jar nahimo, karon mahimo nimong i-execute ang file gamit ang java command sama sa gipakita.

$ java -jar tecmintapp.jar

no main manifest attribute, in tecmintapp.jar

Gikan sa output sa sugo sa ibabaw, nakasugat mi og sayop. Ang JVM (Java Virtual Machine) dili makit-an ang among panguna nga gipakita nga kinaiya, busa dili kini makit-an ang panguna nga klase nga adunay sulud nga pamaagi (public static void main (String [] args)).

Ang JAR file kinahanglan adunay usa ka manifest nga adunay usa ka linya sa porma nga Main-Class:classname nga naghubit sa klase nga adunay nag-unang pamaagi nga nagsilbi nga punto sa pagsugod sa among aplikasyon.

4. Aron ayohon ang sayop sa ibabaw, kinahanglan namong i-update ang JAR file aron maapil ang usa ka manifest attribute uban sa among code. Magbuhat ta ug MANIFEST.MF file.

$ vim MANIFEST.MF

Kopyaha ug idikit ang mosunod nga linya sa MANIFEST.MF file.

Main-Class:  TecmintApp

I-save ang file ug idugang nato ang file MANIFEST.MF sa atong tecmintapp.jar gamit ang mosunod nga sugo.

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

5. Sa katapusan, sa dihang atong gipatuman ang JAR file pag-usab, kini kinahanglan nga mopatungha sa gipaabot nga resulta sama sa gipakita sa output.

$ java -jar tecmintapp.jar

Just executed TecmintApp!

Para sa dugang nga impormasyon, tan-awa ang java, javac ug jar command man page.

$ man java
$ man javac
$ man jar

Reperensya: Mga Programa sa Packaging sa JAR Files.

Kana lang! Niining mubo nga artikulo, among gipatin-aw kung giunsa paghimo ang usa ka yano nga aplikasyon sa Java ug i-bundle kini sa usa ka JAR file, ug gipakita kung giunsa ang pag-execute sa usa ka .jar file gikan sa terminal. Kung naa kay pangutana o dugang nga ideya nga ipaambit, gamita ang feedback form sa ubos.