gpt4 book ai didi

java - Java < 15 和 >= 15 的不同 Nashorn 引擎?

转载 作者:行者123 更新时间:2023-12-05 09:06:27 24 4
gpt4 key购买 nike

我正在尝试为 Nashorn 找到一种解决方法,使其与 Java 1.8 以上的每个版本兼容,如另一个 question 中所述我之前问过。
我目前正在 try catch UnsupportedClassVersionError 以查明系统是否能够运行 standalone Nashorn对于像这样的 Java 15(Kotlin 代码):

scriptEngine = try {

// Java >= 15

org.openjdk.nashorn.api.scripting.NashornScriptEngineFactory().scriptEngine
} catch(e: UnsupportedClassVersionError) {

// Java < 15

@Suppress("DEPRECATION")
jdk.nashorn.api.scripting.NashornScriptEngineFactory().scriptEngine
}

但是看起来错误没有被捕获。堆栈跟踪如下:

java.lang.UnsupportedClassVersionError: org/openjdk/nashorn/api/linker/NashornLinkerExporter has been compiled by a more recent version of the Java Runtime (class file version 59.0), this version of the Java Runtime only recognizes class file versions up to 55.0

我也 try catch NoClassDefFoundError 反转之前的 try/catch(加载 Java < 15 Nashorn,如果它不存在加载独立的)但错误是相同的。

编辑:看起来错误是由 Java < 15 Nashorn 本身抛出的。

最佳答案

这里是 Nashorn 维护者!我刚刚发布了Nashorn 15.2 ,与 15.1.1 相同,但现在使用 Java 11 编译。这意味着您现在可以将独立的 Nashorn 与 Java 11 及更高版本一起使用,而不必切换为 < 15 和 >= 15。我写了一个 page to explain如何在同时存在内置和独立 Nashorn 的 Java 11-14 上使用它。

关于java - Java < 15 和 >= 15 的不同 Nashorn 引擎?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66061017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com