调用js函数出现Caused by: org.graalvm.polyglot.PolyglotException: ReferenceError: global is not defined
private static Context context;
static {
context = Context.newBuilder("js")
.allowHostAccess(HostAccess.ALL)
.allowHostClassLookup(className -> true)
.build();
String jsFilePath = "E:\\ideaProjects\\douyin\\src\\main\\resources\\Js\\douying_sorce.js";
String jsContent;
try {
jsContent = new String(Files.readAllBytes(Paths.get(jsFilePath)), StandardCharsets.UTF_8);
} catch (IOException e) {
throw new RuntimeException(e);
}
// 执行 JavaScript 代码
context.eval("js", jsContent); 《-----报错指向这一行
java.lang.ExceptionInInitializerError
at Test1.test(Test1.java:38)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
Caused by: org.graalvm.polyglot.PolyglotException: ReferenceError: global is not defined
at <js>.:program(Unnamed:5)
at org.graalvm.polyglot.Context.eval(Context.java:428)
at d1.JavaScriptUtils.<clinit>(JavaScriptUtils.java:36)
... 23 more