当前位置: 首页 > 知识库问答 >
问题:

GraalVM Polyglot无法加载Java类

秦俊友
2023-03-14

想要从Nashorn迁移到GraalVM。已安装Graal VM CE

openjdk version "11.0.5" 2019-10-15
OpenJDK Runtime Environment (build 11.0.5+10-jvmci-19.3-b05-LTS)
OpenJDK 64-Bit GraalVM CE 19.3.0 (build 11.0.5+10-jvmci-19.3-b05-LTS, mixed mode, sharing)

测试应用

import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.HostAccess;

public class Main {
    public static void main(String[] args) {
        Context context = Context.newBuilder("js").allowHostAccess(HostAccess.ALL).build();
        context.eval("js", "var FileClass = Java.type(\"java.io.File\");");
    }
}

例外情况:

Exception in thread "main" ReferenceError: Java is not defined
    at <js> :program(Unnamed:1:16-19)
    at org.graalvm.sdk/org.graalvm.polyglot.Context.eval(Context.java:370)
    at task.Main.main(Main.java:9)

发生了什么?

共有1个答案

壤驷坚
2023-03-14

据我所知,这是正确的选择:

Context context = Context.newBuilder("js")
        .allowHostClassLookup(s -> true)
        .allowHostAccess(HostAccess.ALL)
        .build();

主机访问。ALL–预定义的主机访问策略,允许完全不受限制地访问公共主机类的公共方法或字段。

...但是我们还需要更改默认的过滤器谓词org.graalvm.polyglot.Context#UNSET_HOST_LOOKUP,它返回总是false

默认情况下,如果所有访问都是假的,则禁用主机类查找。

所以,只需不过滤allowHostClassLookup(s-

 类似资料:
  • 应用程序正在启动。获取数据。请稍候...线程“main”java.lang.UnsatisfiedLinkError中出现(约10s)异常:无法加载SWT库。原因:java.library.path中没有swt-cocoa-4236。path中没有swt-cocoa不能加载库:C:\users\andrew.swt\lib\win32\x86_64\swt-cocoa.dll不能加载库:C:\us

  • 问题内容: 我正在尝试使用ELKI(http://elki.dbs.ifi.lmu.de/)进行OPTICS群集。 我尝试使用提供的gui运行群集,但是随后出现此异常: 我将w3c.jar解压缩到程序路径中。但这仍然给我同样的错误。 我有一个相当老的Ubuntu(10.04),带有OpenJDK版本IcedTea6 1.13.3。但是我想那不是造成麻烦的吧? 该怎么办? 问题答案: 我认为您仍然必

  • 问题内容: 我的应用程序将同时部署在tcServer和WebSphere 6.1上。此应用程序使用ehCache,因此需要slf4j作为依赖项。结果,我已将slf4j-api.jar(1.6)jar添加到我的war文件包中。 该应用程序在tcServer中工作正常,但以下错误除外: 但是,当我在WebSphere中部署时,会得到一个。 还伴随着 我已经检查了两个应用服务器的类路径,没有其他的slf

  • 我有这个问题,知道吗?我正在添加洞迹 我的代码如下所示: 我的文件夹目录如下所示: 堆栈跟踪:

  • 我用的是软呢帽19。HelloWorld的内容。爪哇: 我可以使用 javac HelloWorld。JAVA 但我无法使用 java HelloWorld 它给出了以下错误 错误:无法找到或加载主类HelloWorld 但我可以用 sudo java HelloWorld 我错过了什么???

  • 问题内容: 当我尝试运行Hibernate时,我在控制台中收到以下消息。 但是hibernate状态很好。我的项目有什么问题吗?我使用Eclipse(Helios),Hibernate 3.6.8。我使用这些jar文件:antlr-2.7.6,commons- collections-3.1,dom4j-1.6.1,hibernate3,hibernate- jpa-2.0-api-1.0.1.F