< Java

Java jpackage

Szerző: Sallai András

Copyright © Sallai András, 2023

Licenc: CC BY-SA 4.0

Web: https://szit.hu

JAR

A jpackage parancsnak szükséges lehet kész .jar fájl.

jar \ --create \ --main-class App \ --file mutat.jar \ -C bin .

Ugyanaz rövidített kapcsolókkal:

jar -c -e App -f mutat.jar -C bin .

jpackage

Kapcsolók:

https://docs.oracle.com/en/java/javase/17/docs/specs/man/jpackage.html (2023)

jpackage \
--type app-image \
--input input \
--dest output \
--name App01 \
--main-jar App01-0.1.jar \
--main-class lan.zold.app01.App \
--icon app01.ico

Típusnak megadható:

app-image

exe

msi

rpm

deb

pkg

dmg

Helló program Linuxon

Készítsünk egy Java alkalmazást például VSCode segítségével, mutat néven.

Ha minden elkészült a következő könyvtár szerkezetet kapjuk.

mutat/
|-.vscode/
| `-settings.json
|-bin/
| `-App.class
|-lib/
|-output/
| `-mutat_1.0-1_amd64.deb
|-src/
| `-App.java
|-gen_jar.sh
|-gen_package.sh
|-mutat.jar
`-README.md

public class App { public static void main(String[] args) throws Exception { System.out.println("Lássuk"); } }

Egy futtatással elkészül a bin könyvtár benne az App.class.

Készítsük el a mutat.jar fájlt:

jar \ --create \ --main-class App \ --file mutat.jar \ -C bin .

Készítsük el az output/mutat_1.0-1_amd64.deb csomagot:

jpackage \ --type deb \ --input . \ --dest output \ --name mutat \ --main-jar mutat.jar \ --main-class App

Linuxon a mutat alkalmazás a következő helyre telepszik:

/opt/mutat

Futtassuk:

/opt/mutat/bin/mutat

Java 17

A Java 17 verzióval ehhez hasonló hibát kapunk, ha /opt/mutat/bin/mutat-t futatjuk:

$ /opt/mutat/bin/mutat
pure virtual method called
terminate called without an active exception
Lássuk

Windows

Windowson útvonalba kell tenni a Java bin könyvtárát. Legyen például:

c:\Program Files\Java\jdk-17.0.2\bin\

Ellenőrzés:

jpackage --version

JAR készítése

@echo off jar cfm mutat.jar manifest.mf -C bin/ . pause
@echo off jpackage ... pause