Java 8 Javascript 引擎向后兼容性

2024-01-22

我正在我的项目中尝试 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”未在行中定义

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

[#JDK-8025132] https://bugs.openjdk.java.net/browse/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 向后兼容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 8 Javascript 引擎向后兼容性 的相关文章

随机推荐

  • 在 JavaFX 中使用多个选择框来过滤列表视图

    我正在尝试使用多个选择框为我的列表视图创建一个过滤器函数 但我不知道如何做到这一点 因为我对 JavaFX 还很陌生 我做了一些研究 听说需要使用过滤列表 但大多数在线示例仅围绕使用文本字段 这是我的控制器类 FXML private Ch
  • 如何使 tf.data.Dataset 在一次调用中返回所有元素?

    有没有一种简单的方法来获取整个元素集tf data Dataset 即我想将数据集的批量大小设置为我的数据集的大小 而无需专门向其传递元素数量 这对于验证数据集非常有用 我想一次性测量整个数据集的准确性 我很惊讶没有一种方法可以获取 a 的
  • 在 Jenkins for Git 中管理 SSH 密钥

    我正在尝试让 Jenkins 启动并运行 GitHub 托管存储库 使用 Jenkins Git 插件 该存储库有多个 git 子模块 因此我不确定是否要尝试管理多个部署密钥 我的个人 GitHub 用户帐户是我希望使用 Jenkins 参
  • 软件导致连接中止。回复返回错误:连接无效

    My Xcode 9 gives the message to which I don t know how to respond I want to run the app to my simulator and I am getting
  • 在 Angular 2/Angular-CLI 中将 CSS 排除在 JS 之外

    默认情况下 Angular 2 将 CSS 编译为 JavaScript 尤其是在 Angular CLI 中使用 WebPack 时 我宁愿这种情况不要发生 原因有几个 第一个原因是 当我开发时 我发现能够在开发人员工具中准确地看到特定样
  • 如何管理缓存的IDisposable对象?

    我有一个创建成本很高的对象 它使用一些非托管资源 这些资源在完成后必须显式释放 因此实现 IDisposable 我想要一个缓存 例如这些昂贵的资源 以便最小化创建成本 但我不知道如何处理处置 如果使用对象的方法负责处置 那么我最终会在缓存
  • Windows 上的 GVIM:禁用 tmp 文件创建的方法

    我在 Windows 上使用 gvim 我想知道一种禁用临时文件 以 结尾 文件创建的方法 还有如果我们这样做的话会有问题吗 您可以通过将此行放入 vimrc 中来禁用备份文件 set nobackup 我几乎总是这样做 因为 文件更烦人而
  • 如何使用 python mysqldb 一次插入多行

    我有一个列表列表 例如 a b c d 我有一张桌子叫T和两个字段F1 F2 字段列表中的第一项映射到F1 其次是F2 如何在单个命令或调用中为每个内部列表插入行 而不是使用这样的 for 循环 for i in a b c d c exe
  • jqgrid 在网格加载后将单元格输入更改为只读

    加载所有网格数据后 如何将单元格输入更改为 只读 我只希望加载的行将此单元格设置为只读 当我添加新行时 我不希望此单元格设置为只读 提前致谢 UPDATE 这是我的代码 Grid1 jqGrid editurl clientArray da
  • Python 错误:未指定主机

    我刚刚写了一个简单的python demo 同时遇到了一个令人困惑的问题 import requests print requests get http www sina com cn 我知道正确的结果是返回 Response 200 但是
  • PHP的use语句在加载类时会导致额外的工作吗?

    代码示例1 use Outline Drawing var new Drawing 代码示例2 var new Outline Drawing 问题 如果我使用示例 1 中的代码 PHP 是否会使硬件工作更加困难 查找更多文件或执行更多处理
  • 在 Flask 中同时渲染多个模板

    我正在制作一个 Flask 应用程序 我有一个登录区域 一个博客区域 如果我想获取用户的登录信息 我将渲染登录模板 但这不会呈现必须显示在登录区域下方的博客模板 我会尽力让它更清楚 block login endblock blah bla
  • SSIS 脚本组件删除 CHAR(和)字段中的“\0”字符

    我目前正在开发一个字段中有 0 字符的数据库 例如领域 Category CHAR 4 有时值为 0 0 0 0 4 个零字符 有时为 4 个空白字符 我想使用脚本组件来区分存在此问题的所有字段 我编写了以下脚本 但它不起作用 因为 C 将
  • 设置 AnchoredOffsetbox 的线宽和面颜色?

    是否可以更改 AnchoredOffsetbox 的线宽 面颜色等 我用它来列出我的图旁边的一些变量 例如 A 1 B 2 以这种方式 垂直对齐 所以它有点像一个额外的图例 但句柄也是文本 但我不知道如何像图例那样设置框架的属性 非常感谢任
  • 动态更改 Quill 占位符

    我知道在实例化 Quill 编辑器时 有一个占位符选项 有没有一种方法可以在实例化编辑器后动态更改此占位符 占位符是通过 CSS 规则实现的 ql editor before content attr data placeholder 所以
  • 如何在别名列上使用聚合函数 SUM?

    Invoice ID PO Number and dueDate are shown in duplicates TotalPrice 是一个别名 应该是单价 总价是一个错误 所以假设是单价而不是总价 TotalShippingPrice
  • JSON.net 与 XPATH:如何保留 SelectToken 中的节点顺序?

    XPath 2 规定应按照文档中的顺序返回选择的节点顺序 当您在 JSON Net 中 SelectTokens JSONPath 时 情况似乎并非如此 当我处理以下文档时 string json Files dir1 Files file
  • 文件版本信息和程序集信息

    给出 Blah dll 的 AssemblyInfo cs 中的这段代码 assembly AssemblyVersion 3 3 3 3 assembly AssemblyFileVersion 2 2 2 2 然后在一个单独的 exe中
  • 如何将字符串转换为HashMap? [复制]

    这个问题在这里已经有答案了 我有一个 Java 属性文件 并且有一个KEY as ORDER 所以我检索VALUE那个KEY使用getProperty 加载属性文件后的方法如下 String s prop getProperty ORDER
  • Java 8 Javascript 引擎向后兼容性

    我正在我的项目中尝试 Java 8 但遇到了与构建过程相关的错误 我正在使用 ANT 脚本 有时我会使用一些 javascript 嵌入到 ANT 中 来执行一些构建特定的操作 导致错误的脚本部分如下所示 该项目使用 Java 7 或 Ja