Java 8 Javascript引擎向后兼容性
我正在我的项目中尝试Java 8,并且我遇到了与构建过程相关的错误。
我正在使用ANT脚本,在某些时候我使用一些javascript(嵌入到ANT中)来做一些构建特定的操作。 导致错误的脚本部分如下所示:
该项目正在使用Java 7或Java 6构建,但是当我使用Java 8时它会给我一些错误。这些错误与JS引擎的升级有关。
特别是我得到以下exception:
javax.script.ScriptException:ReferenceError:“importClass”未在行中定义
经过一些谷歌搜索后,我发现它与JDK中的以下问题有关
[#JDK-8025132]
我尝试了评论中的建议,但没有运气。
如何使Java 8 Nashorn引擎与Rhino JS引擎兼容?
一种方法是包括
load("nashorn:mozilla_compat.js");
它提供importClass。
另一方面,您可以直接使用java.io.File,java.io.FileReader,…而无需导入。
var File = java.io.File; var FileReader = java.io.FileReader;
这与Rhino向后兼容。
- 如何使用包含某些文件的ant构建创建EAR文件?
- 为什么ant.bat在以编程方式运行时不会返回错误状态?
- Ant scp任务无法正常工作,即使在ant / lib上使用jsch也是如此
- 在ant任务中使用eclipse类路径
- Ant“JAVA_HOME不指向JDK” – 但确实如此
- 配置ant以运行unit testing。 图书馆应该在哪里? 应该如何配置classpath? 避免ZipException
- 使用ant / ivy从nexus中检索依赖关系之间的http身份validation?
- Apache Ant在运行此脚本时被冻结
- Ant + Vista 64:“无法找到tools.jar”(jre / jdk冲突?)