Tartalomjegyzék
Java jar fájl készítése
- Szerző: Sallai András
- Copyright © 2011, Sallai András
- Szerkesztve: 2011, 2015, 2023
- Licenc: CC BY-SA 4.0
- Web: https://szit.hu
A JAR fájlokról
A JAR fájlokat ezért hozzuk létre, hogy több állományban lévő osztályainkat egy „archív” fájlba rendezzük. Egy ilyen JAR fájl nem más, mint egy olyan ZIP állomány, amely java osztályokat és hozzájuk tartozó metaadatokat tartalmaz.
JAR fájl készítése
JAR kiindulási állományok
Legyen a példa kedvérét néhány osztály:
- ProgramNev.class
- ProgramNev$egyik.class
- ProgramNev$masik.class
A főosztály a ProgramNev.class
Készítünk egy manifest.mf nevű fájlt a következő tartalommal:
- manifest.mf
Main-Class: ProgramNev
A ProgramNev után kell egy sortörés!
Elkészítés
A főosztály nevét írjuk mindig a Main-Class: szöveg után.
jar cvfm ProgramNev.jar manifest.mf *.class
Futtatás
java -jar ProgramNev.jar
Megjegyzés
- menifest.mf
Comment: Megjegyzés X-COMMENT: Másik megjegyzés
Más jar fájlok használata
manifest fájl készítése
- manifest.mf
Main-Class: ProgramNev Class-Path: masikjarfile.jar harmadikjarfile.jar negyedikjarfile.jar
Elkészítés
Ugyanúgy készítjük el a JAR fájlt.
jar cvfm ProgramNev.jar manifest.mf *.class
A plusz JAR fájlt nem tesszük a ProgramNev.jar fájlba. Terjesztéskor csak mellé tesszük.
Közzétett fájlok
- ProgramNev.jar
- masikjarfile.jar
- harmadikjarfile.jar
- negyedikjarfile.jar
- ProgramNev_Start.sh
- ProgramNev_Start.bat
Több osztályból álló állományainkból jar fájl
Adott példaként a következő projekt:
CarRace |--controller | |--Controller.java | |--view | |--Car.java | |--ButtonPanel.java | |--DisplayPanel.java | |--MainWindow.java | |--Track.java | |--CarRace.java |--Makefile
Elkészítjük hozzá a megfelelő mainfest.mf fájlt:
- manifest.mf
Main-Class: CarRace Class-Path: controller/Controller view/Car view/ButtonPanel Class-Path: view/DisplayPanel view/MainWindow view/Track
Egy Makefile, amivel jar fájl is készíthető:
- Makefile
SOURCES=CarRace.java \ view/Car.java \ view/MainWindow.java \ view/Track.java \ view/ButtonPanel.java \ view/DisplayPanel.java \ controller/Controller.java all: javac $(SOURCES) CLASSES=CarRace.class \ view/*.class \ controller/*.class JARFILE=CarRace.jar MANIFEST=manifest.mf jar: jar cvfm $(JARFILE) $(MANIFEST) $(CLASSES) run: java -jar $(JARFILE)
A jar fájlkészítő parancsnál ügyeljünk arra, hogy minden .class kiterjesztésű fájlt be kell építeni a jar fájlba.
A controller/ könyvtárban például a következő .class fájlok vannak:
- Controller.class
- Controller$1.class
- Controller$2.class
- Controller$3.class
- Controller$4.class
- Controller$5.class
- Controller$6.class
Ezért „*” karaktert használok a Makefile-ban, hogy jelezzem az össze .class kiterjesztésű fájlra szükségem van.
Indító fájlok készítése
Lefordítjuk az osztályokat:
javac *.class
Elkészítjük a jar fájlt:
echo Main-Class: MyMainClassName > manifest.txt jar cvfm MyOwnJarfile.jar manifest.txt *.class
Elkészítjük a futtató scriptet ( .bat vagy .sh script)
echo java -jar MyOwnJarfile.jar > start.bat
Ez után mehet az indítás.
Szimpla program ikonnal
Projekt01/ | |--bin/ | |--class/ | | | |--Mainwindow.class | |--images/ | | | |--projekt01Icon_32x32.png | |--src/ | |--Mainwindow.java | |--Makefile | |--manifest.mf
- Makefile
JFLAGS= -g JC=javac JVM=java SRCS=Mainwindow.java PROG=Projekt01 CLASSPATH=../class JAR=jar MANIFEST=manifest.mf JARFLAGS=cvfm BIN=../bin RM=rm -f all: $(JC) -Xlint:all -d $(CLASSPATH) $(SRCS) run: $(SRCS) $(JVM) -cp ..:$(CLASSPATH) $(PROG) clean: $(RM) $(CLASSPATH)/*.class $(RM) $(BIN)/*.jar $(RM) *.class jar: $(JAR) $(JARFLAGS) $(BIN)/$(PROG).jar $(MANIFEST) -C $(CLASSPATH) . $(JAR) -uvf $(BIN)/$(PROG).jar ../images/projekt01Icon_32x32.png
MVC használata
projekt01 |--classes/ | | | |--controller/ | | |--Controller.class | | `--MasController.class | |--model/ | | `--Model.class | |--view/ | | |--Mainwindow.class | | `--Masview.class | `--Prog01.class |--src/ `--manifest.mf
- manifest.fm
Main-Class: Prog01
cd classes jar cvfm ../tpgt.jar ../manifest.mf classes/
Ha Makefile-t írunk:
jar: cd classes; jar cvfm ../tpgt.jar ../manifest.mf *
VSCode
A Visual Studio Code-ban nyissuk meg egy .java kiterjesztésű fájlt. Megjelenik a Java projects nézet. Ott találunk egy jobbra mutató nyilat, talppal.
Ugyanaz széthúzott oldalsávnál:
Ki kell választanunk a main class-t:
Meg kell mondanunk, mit szeretnénk beletenni:
Az [ OK ] gombra kattintva, elkészül a projekt gyökérkönyvtárában a .jar fájl.