Introduction
JS7 Agents can execute JVM Jobs running in an Oracle® GraalVM that are implemented using JavaScript.
- The Oracle® GraalVM includes an OpenJDK and a number of interpreters for scripting languages such as JavaScript, Python etc.
- The JS7 - Job API offers such jobs access to arguments, return values etc.
The following information applies to JVM Jobs, not to Shell Jobs that directly invoke a Java Virtual Machine or an interpreter such as Node.js.
- For direct invocation of Node.js with jobs see JS7 - How to run Node.js JavaScript from Shell Jobs
FEATURE AVAILABILITY STARTING FROM RELEASE 2.5.4
FEATURE AVAILABILITY STARTING FROM RELEASE 2.6.1
License
Oracle® GraalVM ships with a number of licenses:
- Oracle® GraalVM Community Edition is available under the GPLv2+CPE license (recommended).
- Oracle® GraalVM is available under the GraalVM Free Terms and Conditions (GFTC) license.
Users agree with license terms when downloading the related edition of Oracle® GraalVM.
Download
The Oracle® GraalVM can be downloaded from https://www.graalvm.org/downloads/
Users choose the Oracle® GraalVM for their OS platform an Java version supported by the JS7 Agent, for example Java 17. For details see Which Java versions is JobScheduler available for?
curl 'https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-17.0.7/graalvm-community-jdk-17.0.7_linux-x64_bin.tar.gz' -O tar -xzf graalvm-community-jdk-17.0.7_linux-x64_bin.tar.gz -C /opt/java
Installation
After download users extract the .tar.gz/.zip archive of the Oracle® GraalVM and make the JAVA_HOME
environment variable to point to the location where Oracle® GraalVM is extracted.
In a next step the related js
JavaScript component has to be downloaded and initialized, for details see GraalVM Updater:
JAVA_HOME=/opt/java/graalvm-community-openjdk-17.0.7+7.1 # check components included with downloaded Oracle GraalVM $JAVA_HOME/bin/gu list * # output to the command can look like this (indicating that the js JavaScript component by default is not included): # ComponentId Version Component name Stability Origin # --------------------------------------------------------------------------------------------------------------------------------- # native-image 23.0.0 Native Image Early adopter # check js JavaScript components available for installation with Oracle GraalVM $JAVA_HOME/bin/gu available js # output to the command can look like this: # ComponentId Version Component name Stability Origin # --------------------------------------------------------------------------------------------------------------------------------- # js 23.0.0 Graal.js Supported github.com # nodejs 23.0.0 Graal.nodejs Supported github.com # install js (JavaScript) component from download $JAVA_HOME/bin/gu install js # alternatively perform download separately and install .jar file # cur '' -O # $GRAALVM/bin/gu install --file ~/Downloads/js-installable-...-.jar
JAVA_HOME=/opt/java/graalvm-community-openjdk-17.0.7+7.1 $JAVA_HOME/bin/gu install js $GRAALVM/bin/gu install --file ~/Downloads/js-installable-...-.jar
Example
curl 'https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-17.0.7/graalvm-community-jdk-17.0.7_linux-x64_bin.tar.gz' -O tar -xzf -C /opt/java JAVA_HOME=/opt/java/graalvm-community-openjdk-17.0.7+7.1 $JAVA_HOME/bin/gu install js