Fork me on GitHub


Example code to demonstrate how to use junixsocket with jlink and jpackage.



jlink builds Java runtime images that are tailored towards a specific set of Java classes / modules.

jlink was introduced in Java 9.


jpackage builds native installers for applications, utilizing optimized runtimes very much like jlink.

jpackage was introduced in Java 14.

The demo code

This demo simply runs a very simple selftest built into junixsocket-common.

It depends on junixsocket-core, which is a POM-only dependency that in turn references junixsocket-common (the common junixsocket API) and junixsocket-native-common (the native library images for common operating systems).

Build instructions

The main purpose of this Maven module is to demonstrate how to configure a project's pom.xml file such that jlink/jpackage-compatible artifacts can be created.

By default, this demo does not create executable jlink/jpackage artifacts. You have to invoke the mvn command with a given profile setting to enable them:

cd junixsocket-demo-jpackagejlink
mvn clean verify -Djpackage -Djlink 

Omit either -Djpackage or -Djlink if desired.

See the junixsocket-demo-jpackagejlink POM file for how this is done.


See junixsocket-demo-jpackagejlink/target/jpackage for the binary package result (the actual file depends on your target platform).

See junixsocket-demo-jpackagejlink/target/jlink/image for the Java runtime optimized for the demo code.