用VSCode运行GraalVM(Java/NodeJS版)
首先
-
- VSCodeのGraalVM拡張を用いて以下のプログラムを動作させた話
Java (単純なHelloWorldと、JavaからJSのコードを呼び出す2パターン)
node.js (シンプルなWebアプリケーションを起動)
実行環境は以下の通り
Windows 10
GraalVM CE 22.3.1
VSCode 1.76.2
誤り等あれば、ご指摘いただけますと幸いです
创建环境
安装GraalVM
Installation on Windows PlatformsからGraalVMをインストールする
以降、C:\Program Files\graalvm に展開したものとして説明する
インストール後、環境変数PATHとJAVA_HOMEを以下の通り設定する
環境変数
値
PATH
C:\Program Files\graalvm\bin を追加
JAVA_HOME
C:\Program Files\graalvm
安装Java扩展的GraalVM工具。

3. Java的默认设置

環境檢查 (Java)
-
- VSCodeのTERMINALにjava –versionと入力。GraalVMのJVMが表示される事を確認
-
- openjdk 17.0.6 2023-01-17
-
- OpenJDK Runtime Environment GraalVM CE 22.3.1 (build 17.0.6+10-jvmci-22.3-b13)
- OpenJDK 64-Bit Server VM GraalVM CE 22.3.1 (build 17.0.6+10-jvmci-22.3-b13, mixed mode, sharing
5. 环境确认(node.js)
-
- VSCodeのTERMINALにnode –version:graalvm と入力。GraalVMの情報が表示されることを確認
-
- GraalVM CE Native Polyglot Engine Version 22.3.1
-
- Java Version 17.0.6
-
- Java VM Version GraalVM 22.3.1 Java 17 CE
-
- GraalVM Home C:\Program Files\graalvm
-
- Installed Languages:
- JavaScript version 22.3.1
6. 创建工作区
C:\dev\GraalVMSampleフォルダを作成し、VSCodeのワークスペースとして開いておく
在Java中运行1(你好,世界)
1. 创建样本文件
VMSampleフォルダ直下にSample.javaを作成する
Sample.java
public class Sample {
public static void main(String[] args) {
System.out.println(“Hello world”);
System.out.println(“java.vm.vendor = ” + System.getProperty(“java.vm.vendor”));
}
}
2. 设定启动文件

3. 进行操作
-
- デバッグビューからRun and Debug -> Launch Java を実行する。
-
- TERMINALに以下のように表示されればOK
-
- Hello world
- java.vm.vendor = GraalVM Community
在Java中执行JS脚本 (运行Java中的JS)
1. 修正样本文件
-
- VMSampleフォルダのSample.javaを以下のように修正する。
org.graalvm.polyglot.Context#createで、多言語の実行コンテキストを作成する。
Sample.java
+ import org.graalvm.polyglot.*;
public class Sample {
public static void main(String[] args) {
+ Context polyglot = Context.create();
+ Value array = polyglot.eval(“js”, “[1,2,42,4]”);
+ int result = array.getArrayElement(2).asInt();
System.out.println(“Hello java on GraalVM”);
System.out.println(“java.vm.vendor = ” + System.getProperty(“java.vm.vendor”));
+ System.out.println(“Array:” + array + “‘s 2nd element is ” + result);
}
}
2. 贯彻执行
-
- デバッグビューからRun and Debug -> Launch Java を実行する。Javascriptの配列処理が行われている
-
- Hello java on GraalVM
-
- java.vm.vendor = GraalVM Community
- Array:(4)[1, 2, 42, 4]’s 2nd element is 42
运行node.js。
1. 制作样本文件
-
- VMSampleフォルダ直下にApp.jsを作成する
App.js
http
.createServer(function (request, response) {
response.writeHead(200, { “Content-Type”: “text/html” });
response.end(“Hello Graal.js!”);
})
.listen(8000, function () {
console.log(“Graal.js server running at http://127.0.0.1:8000/”);
});
2. 启动文件的设置
launch.jsonにNodeJSの起動設定を追加する
launch.json
{
“version”: “0.2.0”,
“configurations”: [
{
“type”: “java”,
“name”: “Launch Java”,
“request”: “launch”,
“mainClass”: “${file}”
},
{
“type”: “graalvm”,
“request”: “launch”,
“name”: “Launch Node App”,
“outputCapture”: “std”,
“protocol”: “chromeDevTools”,
“program”: “${workspaceFolder}/App.js”
}
]
}
3. 进行
-
- デバッグビューからRun and Debug -> Launch Node App を実行する。
-
- 実行後、TERMINALに以下のように表示され、http://127.0.0.1:8000/にアクセスできればOK
-
- Hello js on Graalvm
- Graal.js server running at http://127.0.0.1:8000/
请引用这段话。