Using the Java Packager with JDK 11

Update: jpackage is now Production-Ready

Installable Java Apps with jpackage

Introduction

Santulator: The Application Being Packaged

Santulator in use

Beginning a Journey

What Are We Trying to Achieve?

The main application icon and the session file icon

The Tools for the Job

Installing the Java Packager

The Mystery of the Missing Windows DLLs

Missing MSVCP140.dll
Missing VCRUNTIME140.dll

Windows Inno Setup

Running the Java Packager

JPackager on the command line

JLink

Wrapping It All up with Gradle

./gradlew clean createBundle \
-PjavafxJmodsPath=/opt/javafx-jmods-11 \
-PjavaPackagerPath=/opt/jpackager-11

Running Inno Setup on Windows

Inno Setup

Help, My Application Won’t Start!

./gradlew clean :gui:run
package/build/bundle/Santulator.app/Contents/MacOS/Santulator

The Finished Product

The Santulator installer on the Mac
The Santulator installer on Windows
The Santulator installer on Linux

Rough Edges: Windows

The Windows installer, with a generic icon

Rough Edges: Mac

The Mac installer, with a generic icon

Rough Edges: Linux

The problem with the session icon on Linux
Linux Installer GUI on Ubuntu 18.04

What the Future Might Hold

JavaFX

What to Do If You Haven’t Upgraded to JDK 11 Yet

Final Thoughts

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store