HelloWorld demo for LWJGL 3, compiled to native executable by GraalVM native-image utility.
Gradle/Maven wrappers & build scripts are provided for building the project, which requires JDK 11+ or GraalVM 21+ (for native image).
The GraalVM native-image page shows how to set up GraalVM and its native-image utility for common platforms. Gluon also provides some setup details for GraalVM native-image creation.
The GraalVM native-image utility will use the configuration files in
src/main/resources/META-INF/native-image
folder to assist in the native-image generation.
To build and run the HelloWorld demo in standard JVM with Gradle, execute the run
task:
gradlew run
To see some debug info generated by LWJGL, run it with relevant system properties to show some debug messages in the console:
gradlew run -Dorg.lwjgl.util.Debug=true
The above tasks can use any standard JDK 11+.
To generate native executable, GraalVM 21+ need be set up as mentioned in GraalVM pre-requisites section above.
Once GraalVM is set up and available in the path, run the nativeCompile
task:
gradlew nativeCompile
The nativeCompile
task would take a while to compile the demo source code and
link them with the LWJGL libraries into a native executable file.
The resulting lwjgl3-helloworld
executable file is:
build/native/nativeCompile/lwjgl3-helloworld
(or if building on a Windows machine:
build\native\nativeCompile\lwjgl3-helloworld.exe
)
which can then be run directly:
./build/native/nativeCompile/lwjgl3-helloworld
or, run it with relevant system properties to see some debug info in the console:
./build/native/nativeCompile/lwjgl3-helloworld -Dorg.lwjgl.util.Debug=true
(or if building on a Windows machine:
build\native\nativeCompile\lwjgl3-helloworld.exe
build\native\nativeCompile\lwjgl3-helloworld.exe -Dorg.lwjgl.util.Debug=true
)
To build and run the HelloWorld demo in standard JVM with Maven, execute the
compile
then exec:exec
tasks:
mvnw compile
mvnw exec:exec
To see some debug info generated by LWJGL, run it with relevant system properties to show some debug messages in the console:
mvnw exec:exec -Dsys.props="-Dorg.lwjgl.util.Debug=true"
The above tasks can use any standard JDK 11+.
To generate native executable, GraalVM 21+ need be set up as mentioned in GraalVM pre-requisites section above.
Once GraalVM is set up and available in the path, run the package
task:
mvnw package
The package
task would take a while to compile the demo source code and
link them with the LWJGL libraries into an executable file.
The resulting lwjgl3-helloworld
executable file is:
target/lwjgl3-helloworld
(or if building on a Windows machine:
target\lwjgl3-helloworld.exe
)
which can then be run directly:
./target/lwjgl3-helloworld
or, run it with relevant system properties to see some debug info in the console:
./target/lwjgl3-helloworld -Dorg.lwjgl.util.Debug=true
(or if building on a Windows machine:
target\lwjgl3-helloworld.exe
target\lwjgl3-helloworld.exe -Dorg.lwjgl.util.Debug=true
)