如何在java应用程序中使用GraalVM SDK库?
我不知道如何用GraalVM的SDK编译我的Java应用程序。我相信在使用GraalVMjavac
二进制文件时,默认情况下会将它们添加到类路径中
我的hello world测试应用程序:
import java.io.File;
import org.graalvm.polygot.Source;
import org.graalvm.polygot.Context;
public class Application
{
public static void main() {
System.out.println("Hello, world");
}
}
javac
输出:
$ javac Application.java
Application.java:2: error: package org.graalvm.polygot does not exist
import org.graalvm.polygot.Source;
^
Application.java:3: error: package org.graalvm.polygot does not exist
import org.graalvm.polygot.Context;
^
2 errors
我使用的是用OpenJDK 11构建的GraalVMjavac
二进制文件:
$ java --version
openjdk 11.0.8 2020-07-14
OpenJDK Runtime Environment GraalVM CE 20.2.0 (build 11.0.8+10-jvmci-20.2-b03)
OpenJDK 64-Bit Server VM GraalVM CE 20.2.0 (build 11.0.8+10-jvmci-20.2-b03, mixed mode, sharing)
$ env | grep JAVA
JAVA_HOME=/home/matt/Software/graalvm-ce-java11-20.2.0
当深入挖掘时,我发现类包含在其中。jmod存档在$JAVA_HOME/jmod
:
$ jmod list org.graalvm.sdk.jmod | grep Source
classes/org/graalvm/polyglot/Source.class
$ jmod list org.graalvm.sdk.jmod | grep Context.class
classes/org/graalvm/polyglot/Context.class
# 1 楼答案
这些类和包自动进入类路径
导入语句中有输入错误:
polygot
->polyglot
请注意,我还将
String[] args
作为参数添加到了main
方法中,因此它具有正确的签名并可以运行这是我编译/运行时的输出