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向后兼容。