You know 'jpackage', but... wait, do you know 'jpackage'?💡
It is a command-line tool that takes a whole Java app as input and produces a fully self-contained📦 application image;
meaning it includes your code, dependencies and a Java runtime.
It create a runtime for your app with 'jlink', which you can fully configure through 'jpackage';
or you can pass it the path to a runtime image that you already created.
Further configuration options include application metadata like icons and licenses, installation options and launchers as well as JVM and program options.
'jpackage' outputs in platform-specific formats like deb and rpm for Linux or exe and msi for windows.
Now that you know 'jpackage', did you know that it can do all that for modular as well as non-modular applications?
Just awesome, isn't it?🤩
The jpackage tool will take as input a Java application and a Java run-time image, and produce a Java application image that includes all the necessary dependencies.
It will be able to produce a native package in a platform-specific format, such as an exe on Windows or a dmg on macOS.
Each format must be built on the platform it runs on, there is no cross-platform support.
The tool will have options that allow packaged applications to be customized in various ways.
𝑗𝑝𝑎𝑐𝑘𝑎𝑔𝑒 -𝑖 𝑖𝑛𝑝𝑢𝑡𝐷𝑖𝑟 -𝑛 𝑛𝑎𝑚𝑒 --𝑚𝑎𝑖𝑛-𝑐𝑙𝑎𝑠𝑠 𝑐𝑙𝑎𝑠𝑠𝑁𝑎𝑚𝑒 --𝑚𝑎𝑖𝑛-𝑗𝑎𝑟 𝑚𝑦𝐽𝑎𝑟.𝑗𝑎𝑟