但我在线程“main”java.lang.NoClassDefFoundError: jdk/vm/ci/services/Services 中遇到异常
我通过 Maven 包含了 GraalVM
在这个最小示例中引发了相同的异常
import org.graalvm.polyglot.Context;
public class Main {
public static void main(String[] args) {
Context context = Context.create("js");
context.eval("js", "console.log('Hello from Earth')");
}
}
绒球
<dependencies>
<!-- https://mvnrepository.com/artifact/org.graalvm.sdk/graal-sdk -->
<dependency>
<groupId>org.graalvm.sdk</groupId>
<artifactId>graal-sdk</artifactId>
<version>19.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.graalvm.js/js -->
<dependency>
<groupId>org.graalvm.js</groupId>
<artifactId>js</artifactId>
<version>19.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.graalvm.js/js-scriptengine -->
<dependency>
<groupId>org.graalvm.js</groupId>
<artifactId>js-scriptengine</artifactId>
<version>19.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.graalvm.compiler/compiler -->
<dependency>
<groupId>org.graalvm.compiler</groupId>
<artifactId>compiler</artifactId>
<version>19.1.1</version>
</dependency>
</dependencies>
我正在使用 jdk-12.0.1(Open JDK)并在 Windows 10 计算机上工作。
我在互联网上的某个地方发现了这个
-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
应作为 VM 参数包含在内。当我这样做时,异常更改为:
线程“主”java.lang.IllegalAccessError 中的异常:类 org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntimeAccess(在未命名模块 @0x2d8e6db6 中)无法访问类 jdk.vm.ci.services.Services(在模块 jdk. internal.vm.ci) 因为模块 jdk.internal.vm.ci 不会将 jdk.vm.ci.services 导出到未命名的模块 @0x2d8e6db6
也许模块有问题:modules-info.java
module App {
exports testinggraal;
requires org.graalvm.sdk;
requires java.scripting;
requires org.graalvm.truffle;
requires org.graalvm.js;
}