Linux terminalynda .Jar faýly nädip döretmeli we ýerine ýetirmeli


JAR (Java ARchive), köp sanly Java synp faýllaryny we baglanyşykly meta-maglumaty we tekst, şekil we ş.m. ýaly çeşmeleri paýlamak üçin bir faýlda jemlemek üçin ulanylýan platforma garaşsyz faýl formatydyr.

Java iş wagtyna bir programmany bir arhiw faýlynda netijeli ýerleşdirmäge mümkinçilik berýär we howpsuzlyk ýaly köp peýdalary üpjün edýär, elementleri gysylyp bilner, göçürip almagyň wagtyny gysgaldyp biler, bukjanyň möhürlenmegine we wersiýasyna mümkinçilik döreder, ykjamlygy goldaýar. Şeýle hem, giňeltmeler üçin gaplamagy goldaýar.

Bu makalada ýönekeý Java programmasyny nädip döredip, ony JAR faýlyna baglamalydygyny we Linux terminalyndan .jar faýly nädip ýerine ýetirip boljakdygyny görkezeris.

Munuň üçin Java programmasyny işe girizmek üçin java buýruk setiri guraly we JAR faýlynda jemlenen programmany ýerine ýetirmek üçin -jar baýdagy bolmaly. Bu baýdak ulanylanda görkezilen JAR faýly ähli ulanyjy synplarynyň çeşmesidir we beýleki synp ýol sazlamalaryna ähmiýet berilmeýär.

Linux-da JAR faýly nädip döretmeli

1. Ilki bilen görkeziş maksady bilen TecmintApp atly programma üçin esasy usul bilen ýönekeý Java synpyny ýazyp başlaň.

$ vim TecmintApp.java

Aşakdaky kody TecmintApp.java faýlyna göçüriň.

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

Faýly ýazdyryň we ýapyň.

2. Ondan soň, görkezilişi ýaly javac we banka enjamlaryny ulanyp, synpy JAR faýlyna jemlemeli we gaplamaly.

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

3. Bir wagtlar tecmintapp.jar döredilen bolsa, indi görkezilişi ýaly java buýrugy ulanyp faýly çykaryp bilersiňiz.

$ java -jar tecmintapp.jar

no main manifest attribute, in tecmintapp.jar

Aboveokardaky buýrugyň çykyşyndan säwlige duş geldik. JVM (Java Wirtual Machine) esasy aç-açan häsiýetimizi tapyp bilmedi, şonuň üçin esasy usuly (köpçülikleýin statiki boşluk esasy (String [] args)) öz içine alýan esasy synpy tapyp bilmedi.

JAR faýlynda Main-Class: synp ady, programmamyzyň başlangyç nokady bolup hyzmat edýän esasy usul bilen synpy kesgitleýän aç-açan bolmaly.

4. aboveokardaky ýalňyşlygy düzetmek üçin kodumyz bilen bilelikde aç-açan atribut goşmak üçin JAR faýlyny täzelemeli bolarys. MANIFEST.MF faýly döredeliň.

$ vim MANIFEST.MF

Aşakdaky setiri MANIFEST.MF faýlyna göçüriň.

Main-Class:  TecmintApp

Faýly ýazdyryň we aşakdaky buýrugy ulanyp, tecmintapp.jar faýlymyza MANIFEST.MF faýly goşalyň.

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

5. Ahyrynda, JAR faýlyny täzeden ýerine ýetirenimizde, çykyşda görkezilişi ýaly garaşylýan netijäni bermeli.

$ java -jar tecmintapp.jar

Just executed TecmintApp!

Has giňişleýin maglumat üçin java, javac we jar buýruk adam sahypalaryna serediň.

$ man java
$ man javac
$ man jar

Salgylanma: JAR faýllarynda gaplama programmalary.

Bu hemmesi! Bu gysga makalada, ýönekeý Java programmasyny nädip döredip, ony JAR faýlyna birikdirmelidigini düşündirdik we terminaldan .jar faýly nädip ýerine ýetirip boljakdygyny görkezdik. Paýlaşmak üçin soraglaryňyz ýa-da goşmaça pikirleriňiz bar bolsa, aşakdaky jogap görnüşini ulanyň.