Oracle折旧了nashorn,我在我的Apache ant构建脚本中使用了它。
这里是一个简短的例子;
try{load("nashorn:mozilla_compat.js");}catch(e){;}
importClass(java.io.File);
var sourceName = project.getProperty("build.source.dir") + "/" +project.getProperty("teiFile") + ".xml";
var targetName = project.getProperty("build.search.dir") + "/" + project.getProperty("teiFile") + ".xml";
var sourceFile = new File("", sourceName);
var targetFile = new File("", targetName);
var uptodate = targetFile.exists() && sourceFile.lastModified() < targetFile.lastModified();
var sourcePrefix = project.getProperty("teiFile");
if(!uptodate & !sourcePrefix.startsWith("G")) {
......
}
}
[我听说过有人提到Rhino或graalVM作为替代品,但似乎每个缺陷都有相当长的缺点。有关当前活动且稳定的库的建议。
谢谢,斯科特
GraalVM当前处于活动状态,稳定,具有Nashorn compatibility mode。您可以使用GraalVM运行您的ant脚本,并且默认情况下包含JS引擎。或者,您可以将GraalVM的JavaScript作为一些依赖项包括在内,并在OpenJDK上运行,这会比较慢,并且可能是OpenJDK和GraalVM的JavaScript的未经测试的组合,但是can also work。