Felhasználói eszközök

Eszközök a webhelyen


oktatas:programozas:java:java_jar_keszitese

< Java

Java jar fájl készítése

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.

oktatas/programozas/java/java_jar_keszitese.txt · Utolsó módosítás: 2023/12/25 13:31 szerkesztette: admin