Helloworld in Java (BINARY GraalVM)

The https://github.com/jreleaser/helloworld-java-graalvm repository shows how to configure GitHub Actions and JReleaser to:

  • compile a helloworld app with bundled Java Runtimes using GraalVM Native Image for:

    • linux-x86_64

    • osx-x86_64

    • osx-aarch_64

    • windows-x86_64

  • assemble distributions with JReleaser

  • create rolling early-access releases with JReleaser on every push to main branch

There are two modes for packaging this application: classpath & modulepath.


  1. ./mvnw verify

  2. ./mvnw -Pjdks

  3. jreleaser assemble


  1. ./mvnw verify

  2. ./mvnw -Pjdks

  3. jreleaser assemble --config-file jreleaser-modules.yml

In both cases the assembled archive is placed at out/jreleaser/assemble/helloworld/native-image.