小编gjw*_*tts的帖子

Nashorn (org.openjdk.nashorn) 对 Java 17 有支持吗?

我尝试使用 nashorn-core:15.1.1.jar 和 Java 17(预发布 - build 27)运行我们产品的 ANT 版本,我得到:

BUILD FAILED
java.lang.ExceptionInInitializerError
    at org.openjdk.nashorn.internal.runtime.Context.compile(Context.java:1509)
    at org.openjdk.nashorn.internal.runtime.Context.compileScript(Context.java:1449)
    at org.openjdk.nashorn.internal.runtime.Context.compileScript(Context.java:759)
    at org.openjdk.nashorn.api.scripting.NashornScriptEngine.compileImpl(NashornScriptEngine.java:528)
    at org.openjdk.nashorn.api.scripting.NashornScriptEngine.compileImpl(NashornScriptEngine.java:517)
    at org.openjdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:395)
    at org.openjdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:151)
    at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:262)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.apache.tools.ant.util.ReflectUtil.invoke(ReflectUtil.java:108)
    at org.apache.tools.ant.util.ReflectWrapper.invoke(ReflectWrapper.java:81)
    at org.apache.tools.ant.util.optional.JavaxScriptRunner.evaluateScript(JavaxScriptRunner.java:103)
    at org.apache.tools.ant.util.optional.JavaxScriptRunner.executeScript(JavaxScriptRunner.java:67)
    at org.apache.tools.ant.taskdefs.optional.Script.execute(Script.java:52)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    at jdk.internal.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:392)
    at org.apache.tools.ant.Target.performTasks(Target.java:413)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
    at org.apache.tools.ant.Main.runBuild(Main.java:811)
    at org.apache.tools.ant.Main.startAnt(Main.java:217)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
    at …
Run Code Online (Sandbox Code Playgroud)

java nashorn

8
推荐指数
2
解决办法
1万
查看次数

java.lang.IllegalAccessError 尝试将嵌入式 javascript 与独立的 nashorn.jar 文件和 Java 16+29(或更高版本)一起使用

我们在一些 ANT 构建文件中使用嵌入式 javascript 代码,并将 Nashorn 功能内置到 Java 8+ 中。在 Java 15 中,Nashorn 功能已被删除,因此我们使用独立的nashorn.jar文件对此进行了测试。我们刚刚添加:

<classpath> <pathelement location="<path>/nashorn.jar"/> </classpath>

一切进展顺利。对于 Java 16,这在构建 16+27 中运行良好。

当我运行一个简单的测试 ANT 脚本时,从 java 16+29(及更高版本)开始:

<project name="Test" default="build" basedir=".">
    <target name="build">
      <echo message="Begin"/>
      <script language="javascript">
        <classpath> <pathelement location="C:/nashorn/nashorn-0.1.0.2013070801.jar"/> </classpath>
        print('Hello from embedded Javascript');
      </script>
      <echo message="End"/>
    </target>
</project>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

build.xml:5: java.lang.IllegalAccessError: class jdk.nashorn.internal.codegen.types.Type (in unnamed module @0xeafc191) cannot access class jdk.internal.org.objectweb.asm.Type (in module java.base) because module java.base does not export jdk.internal.org.objectweb.asm to unnamed module @0xeafc191 …
Run Code Online (Sandbox Code Playgroud)

javascript java ant nashorn java-16

1
推荐指数
1
解决办法
706
查看次数

标签 统计

java ×2

nashorn ×2

ant ×1

java-16 ×1

javascript ×1