JS script doesn#39;t run with Java 11 but works with Java 8(JS脚本不能在Java 11上运行,但能在Java 8上运行)
本文介绍了JS脚本不能在Java 11上运行,但能在Java 8上运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个JS脚本,它在使用JDK 8运行时运行得很好,但在Java 11上失败并出现错误。
错误为:
unknown call type GET:PROPERTY|ELEMENT|METHOD:NODE_PATH(Object)int@jdk.nashorn.internal.scripts.Script$Recompilation$20$11678$^eval\_
Java代码:
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
engine.eval(evalCode);
Invocable invocable = (Invocable) engine;
invocable.invokeFunction("__toCall");
脚本代码:
function __toCall() {
return require('./src/main/resources/ontology/nashorn-invoker')(
function (require) {
print('in nashornInvoker: require=' + require);
var Text = function Text() {
StringLeaf.call(this);
};
Text.prototype.ontologyType = function () {
return 'cmd.ontology.types.Text';
};
var BasicTest = function BasicTest() {
var _field = new Text();
_field._fieldName = 'field';
_field._name = 'Field';
_field._defaultValue = '';
var curNode = this;
Structure.call(this, {
field: _field
});
};
BasicTest.prototype.ontologyType = function () {
return 'cmd.ontology.test.BasicTest';
};
BasicTest.prototype._name = 'Basic Test';
return (function () {
var model = [];
var callbackFn = function (result) {
if (result !== true) model.push.apply(model, result);
};
test.child('field').validate(vc, callbackFn);
var result = model.length === 0 ? true : model;
print('Callback function result: ' + JSON.stringify(result));
return result;
})();
}
);
}
推荐答案
这听起来可能是JDK-8261926错误。好消息是,这个问题已经修复,但只在standalone Nashorn中修复,而不是集成到Java 11中的。还有一个page描述如何确保您的程序使用独立的Nashorn,而不是Java 11上的集成Nashorn。
这篇关于JS脚本不能在Java 11上运行,但能在Java 8上运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:JS脚本不能在Java 11上运行,但能在Java 8上运行
猜你喜欢
- Spring Boot连接到使用仲裁器运行的MongoDB副本集 2022-01-01
- 将log4j 1.2配置转换为log4j 2配置 2022-01-01
- C++ 和 Java 进程之间的共享内存 2022-01-01
- 从 finally 块返回时 Java 的奇怪行为 2022-01-01
- 如何使用WebFilter实现授权头检查 2022-01-01
- Safepoint+stats 日志,输出 JDK12 中没有 vmop 操作 2022-01-01
- Java包名称中单词分隔符的约定是什么? 2022-01-01
- value & 是什么意思?0xff 在 Java 中做什么? 2022-01-01
- Jersey REST 客户端:发布多部分数据 2022-01-01
- Eclipse 插件更新错误日志在哪里? 2022-01-01