我正在我的项目中尝试使用Java 8,而且我遇到了与构建过程相关的错误。
我正在使用ANT脚本,并且在某些时候我使用一些javascript(嵌入到ANT中)来执行一些特定的操作。导致错误的脚本部分如下所示:
<script language="javascript">
<![CDATA[
importClass(java.io.File);
importClass(java.io.FileReader);
...
]]>
</script>
该项目使用Java 7或Java 6构建正常,但在使用Java 8时会出现一些错误。这些错误与JS引擎的升级有关。
特别是我得到以下例外:
javax.script.ScriptException:ReferenceError:&#34; importClass&#34;未在第
行定义经过一些谷歌搜索后,我发现它与JDK中的以下问题有关
我尝试了评论中的建议,但没有运气。
如何使Java 8 Nashorn引擎与Rhino JS引擎兼容?
答案 0 :(得分:45)
一种方法是包括
load("nashorn:mozilla_compat.js");
提供importClass。
另一方面,您可以直接使用java.io.File,java.io.FileReader,...而无需导入。
var File = java.io.File;
var FileReader = java.io.FileReader;
这与Rhino向后兼容。