首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GraalJS错误:无法初始化类com.oracle.truffle.js.runtime.JSContext

GraalJS错误:无法初始化类com.oracle.truffle.js.runtime.JSContext
EN

Stack Overflow用户
提问于 2022-05-22 23:23:37
回答 1查看 468关注 0票数 0

我试图在实例中使用GraalJS来呈现服务器端。但是,当试图使用GraalJS运行代码时,我遇到了问题。每当我运行它时,我都会被抛出一个异常。

代码语言:javascript
运行
复制
org.graalvm.polyglot.PolyglotException: java.lang.NoClassDefFoundError: Could not initialize class com.oracle.truffle.js.runtime.JSContext
at com.oracle.truffle.js.runtime.JSEngine.createContext(JSEngine.java:72) [xxxxxxxxxxxxx:2.1.0.SNAPSHOT]
at com.oracle.truffle.js.runtime.JSEngine.createJSContext(JSEngine.java:80) [xxxxxxxxxxxxx:2.1.0.SNAPSHOT]
at com.oracle.truffle.js.lang.JavaScriptLanguage.newJSContext(JavaScriptLanguage.java:354) [xxxxxxxxxxxxx:2.1.0.SNAPSHOT]
at com.oracle.truffle.js.lang.JavaScriptLanguage.initLanguageContext(JavaScriptLanguage.java:348) [xxxxxxxxxxxxx:2.1.0.SNAPSHOT]
at com.oracle.truffle.js.lang.JavaScriptLanguage.createContext(JavaScriptLanguage.java:323) [xxxxxxxxxxxxx:2.1.0.SNAPSHOT]
at com.oracle.truffle.js.lang.JavaScriptLanguage.createContext(JavaScriptLanguage.java:113) [xxxxxxxxxxxxx:2.1.0.SNAPSHOT]
at com.oracle.truffle.api.LanguageAccessor$LanguageImpl.createEnvContext(LanguageAccessor.java:283) [xxxxxxxxxxxxx:2.1.0.SNAPSHOT]
at com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureCreated(PolyglotLanguageContext.java:557) [xxxxxxxxxxxxx:2.1.0.SNAPSHOT]
at com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureCreated(PolyglotLanguageContext.java:500) [xxxxxxxxxxxxx:2.1.0.SNAPSHOT]
at com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized(PolyglotLanguageContext.java:642) [xxxxxxxxxxxxx:2.1.0.SNAPSHOT]
at com.oracle.truffle.polyglot.PolyglotContextImpl.eval(PolyglotContextImpl.java:1216) [xxxxxxxxxxxxx:2.1.0.SNAPSHOT]
at com.oracle.truffle.polyglot.PolyglotContextDispatch.eval(PolyglotContextDispatch.java:62) [xxxxxxxxxxxxx:2.1.0.SNAPSHOT]
at org.graalvm.polyglot.Context.eval(Context.java:379) [xxxxxxxxxxxxx:2.1.0.SNAPSHOT]

这是我的密码:

代码语言:javascript
运行
复制
try {
    Context engine = Context.create("js");
    Source source = Source.newBuilder("js", script, "<shell>").buildLiteral();
    Value value = engine.eval(source);
    if (value != null) {
        return value.toString();
    }
} catch (Exception e) {
    e.printStackTrace();
}

我用这些JVM参数运行我的实例:

代码语言:javascript
运行
复制
java -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler
--module-path=~/aem/graalvm/graal-sdk-21.3.0.jar:~/aem/graalvm/truffle-api-21.3.0.jar 
--upgrade-module-path=~/aem/graalvm/compiler-21.3.0.jar:~/aem/graalvm/compiler-management-21.3.0.jar
-cp ~/aem/graalvm/launcher-common-21.3.0.jar:~/aem/graalvm/js-launcher-21.3.0.jar:~/aem/graalvm/js-21.3.0.jar:~/aem/graalvm/truffle-api-21.3.0.jar:~/aem/graalvm/graal-sdk-21.3.0.jar:~/aem/graalvm/js-scriptengine-21.3.0.jar:~/aem/graalvm/regex-21.3.0.jar:~/aem/graalvm/icu4j-70.1.jar
... 

据我所知,所有必需的依赖项(包括该类所属的js库)都存在于我的类路径和项目的依赖项中。我可以很好地运行单元测试,只有在实际的AEM实例中运行时才会出现这个问题。

EN

回答 1

Stack Overflow用户

发布于 2022-05-23 02:14:45

我发现了问题所在,结果发现我缺少了icu4j依赖项,并且没有在包的<Import-Package>标记中导入它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72341934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档