Skip to content
An example project how to run Graal/JavaScript on JDK 11 with Graal as optimizing JIT compiler for best performance.
Branch: master
Clone or download
boris-spas Rc15 update in travis.
PullRequest: graal-js-jdk11-maven-demo/7
Latest commit d845096 Apr 11, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
src add missing UPL license information Feb 25, 2019
.travis.yml Rc15 update in travis. Apr 11, 2019
LICENSE add missing UPL license information Feb 25, 2019 clarify that lower is better Feb 25, 2019
ci.jsonnet Load maven only for linux. Feb 25, 2019
pom.xml RC15 update. Apr 11, 2019

Running GraalJS on stock JDK11

This is a simple maven project that demonstrates how it's possible to run GraalJS on a stock JDK11. The application is a simple JavaScript benchmark embedded in a Java application which compares performance of GraalJS and Nashorn.

Pre requirements


  • Clone this repository
git clone
  • Move to the newly cloned directory
cd graal-js-jdk11-maven-demo
  • Make sure that JAVA_HOME is pointed at a JDK11
export JAVA_HOME=/path/to/jdk11
  • Package the project using Maven
mvn package


This project provides two execution setups (using the exec-maven-plugin). One uses the Graal compiler to JIT compile JavaScript for better performance, and the other does not and only interprets the JavaScript code. Both executions output benchmark results for GraalJS (via the GraalVM Polyglot API and the Java Scripting API) and Nashorn.

To Execute with Graal run

mvn exec:exec

To Execute without Graal run

mvn exec:exec@nograal

The benchmark prints the time per iteration in milliseconds, so lower values are better.

Running on GraalVM

This project is also setup to run on GraalVM. The setup is the same except that your JAVA_HOME should point to a directory contain GraalVM. In this case, execution without Graal is not supported.

You can’t perform that action at this time.