THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
- Clone sample repository and move to the newly cloned directory.
- Make sure that
JAVA_HOME
points at a JDK11 (or later)export JAVA_HOME=/path/to/jdk11.
- Open VSCode with VSNetBeans installed.
- Go to File | Preferences and In VS Code, go to Preferences | Settings, search for
netbeans.jdkhome jdkhome
, and set it to to/path/to/jdk11
(or later). - Open Folder with
graal-js-jdk11-maven-demo
in VSCode. - Remove
App.java
andAppTest.java
originally coming with the sample Maven project.
Development
Into In
main/java/com/mycompany/app
, add a new file namedPolyglotSample.java
with the following code:Code Block language java title PolyglotSample.java linenumbers true collapse true package com.mycompany.app; import org.graalvm.polyglot.Context; import org.graalvm.polyglot.Source; import org.graalvm.polyglot.Value; import java.net.URL; public class PolyglotSample { public static void main(String[] args) throws java.io.IOException, java.lang.InterruptedException { Context ctx = Context.create(); URL fibUrl = PolyglotSample.class.getResource("fib.js"); Source fibSrc = Source.newBuilder("js", fibUrl).build(); Value fib = ctx.eval(fibSrc); for (int i = 0; i < 10; i++) { Value res = fib.execute(i); System.out.println("Polyglot with Graal.JS - fib(" + i + ") = " + res.asInt()); Thread.sleep(500); } } }
- In terminal or file explorer, create Create the following structure to store the JS source file, so that Java can find it, within the
main
folder:resources/com/mycompany/app
Inside In this
resources/com/mycompany/app
folder, create a file namedfib.js
and paste in the following JS code:Code Block language js title fib.js linenumbers true collapse true (function(n) { function fib(x) { if (x <= 2) { return 1; } let fibX1 = fib(x - 1); let fibX2 = fib(x - 2); return fibX1 + fibX2; } let fibN = fib(n); print(`JavaScript computed that fib(${n}) is ${fibN}`); return fibN; })
- Save all files and invoke action from Command Palette: Java: Compile Workspace
- this is the action provided by VSNetBeans which builds the project.
- Project is normally built also when debugger start but it is worth for the 1st time see if maven build passes.
...