27

我正在我的项目中试用 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: "importClass" is not defined in at line

经过一番谷歌搜索后,我发现它与JDK中的以下问题有关

[#JDK-8025132]

我尝试了评论中的建议,但没有运气。

如何使 Java 8 Nashorn 引擎与 Rhino JS 引擎兼容?

4

1 回答 1

48

一种方法是包括

load("nashorn:mozilla_compat.js");

它提供 importClass。

另一方面,您可以直接使用 java.io.File, java.io.FileReader, ... 而无需导入。

var File = java.io.File;
var FileReader = java.io.FileReader;

这与 Rhino 向后兼容。

于 2014-03-20T12:15:42.963 回答