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 from Shell jobs see JS7 - How to run Node.js JavaScript from Shell Jobs
Use of Oracle® GraalVM for jobs is available starting from the following releases:
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.
Oracle® GraalVM Components such as the JavaScript Runtime ship with the Universal Permissive License (UPL), Version 1.0, see https://github.com/oracle/graaljs
Download Oracle® GraalVM
The Oracle® GraalVM can be downloaded from https://www.graalvm.org/downloads/
Users choose the Oracle® GraalVM for their OS platform and Java version supported by the JS7 Agent. For details see Which Java versions is JobScheduler available for?
The following example makes use of Oracle® GraalVM 17.0.7 for Linux with Java 17. User should check for current versions of Oracle® GraalVM that match their OS platform and that are based on Java LTS releases.
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 JAVA_HOME=/opt/java/graalvm-community-openjdk-17.0.7+7.1
No installation procedure is required. After download users extract the .tar.gz/.zip archive of the Oracle® GraalVM and make the JAVA_HOME
environment variable point to the location where Oracle® GraalVM is extracted.
The JAVA_HOME
environment variable has to be made available to the JS7 Agent, for example from
- JS7 - Agent Command Line Operation
- Agent Installation Scripts available from JS7 - Automated Installation and Update
- JS7 - systemd Service Files for automated Startup and Shutdown with Unix Systems
Download and Install Oracle® GraalVM Components
The Oracle® GraalVM components for scripting language support can be downloaded from: https://www.oracle.com/downloads/graalvm-downloads.html
The related js
JavaScript Runtime component has to be downloaded and initialized, for details see GraalVM Updater. The following example makes use of JavaScript Runtime 23.0.0 for Linux. Users should check for a current version of the JavaScript Runtime that matches their platform and that is interoperable with the version of Oracle® GraalVM in use.
# set location of Oracle GraalVM JAVA_HOME=/opt/java/graalvm-community-openjdk-17.0.7+7.1 # check components included with download from Oracle GraalVM Updater $JAVA_HOME/bin/gu list # output to the command can look like this (indicating that the js JavaScript Runtime component by default is not included): # ComponentId Version Component name Stability Origin # --------------------------------------------------------------------------------------------------------------------------------- # native-image 23.0.0 Native Image Early adopter # check js JavaScript Runtime component availability 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 # download and install js (JavaScript Runtime) component $JAVA_HOME/bin/gu install js # alternatively perform download separately and install downloaded .jar file # for download URL see https://www.oracle.com/downloads/graalvm-downloads.html, for example # $JAVA_HOME/bin/gu install --file js-installable-jdk-17-linux-amd64-23.0.1.jar