Demonstration repository showing polyglot embedding with GraalVM using Maven and Gradle. It contains a simple Main and Test class to bootstrap a polyglot embedding project.
For demonstration showing polyglot native embedding with GraalVM using Maven, see
the Native embedding Maven project located in the native-embedding subdirectory.
For more details on polyglot embedding please see the docs: https://www.graalvm.org/latest/reference-manual/embed-languages/
Download GraalVM and point the JAVA_HOME environment variable to it.
Download Maven or import as Maven project into your IDE.
mvn packagebuild usingjavac. Starting from GraalVM Polyglot API version 24.1.0, you can usemvn -Pisolated packageto build with the native isolate version of a guest language. By default, only the native isolate library for the current platform is installed. To install native isolate libraries for all supported platforms, usemvn -Pisolated -Disolated.all.platforms package.mvn testto run the testsmvn exec:execto run the application. Starting from GraalVM Polyglot API version 24.1.0, you can usemvn -Pisolated exec:execto embed the native isolate version of a guest language.mvn -Pnative packageto build a native-imagemvn -Passembly packageto build an uber JAR containing all dependencies using the Maven Assembly Plugin. The resulting JAR can be executed usingjava -jar embedding-1.0-SNAPSHOT-jar-with-dependencies.jar. We do recommend not using shading whenever possible.mvn -Pshade packageto build an uber JAR containing all dependencies using the Maven Shade Plugin. The resulting JAR can be executed usingjava -jar embedding-1.0-SNAPSHOT.jar. We do recommend not using shading whenever possible.
Please see the pom.xml file for further details on the configuration.
Download Gradle or import as Maven project into your IDE.
gradle buildbuild using javacgradle runto run the Main applicationgradle testto run the testsgradle nativeCompileto build a native-imagegradle nativeRunto run the native image
Please see the build.gradle.kts file for further details on the configuration.