问题标签 [nashorn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2743 浏览

java - Java 7 应用程序错误,因为尝试使用新的 Java 8 Javascript 引擎 Nashorn

我使用 java 7 打包的 java 应用程序在客户计算机上提供了以下堆栈跟踪。它似乎正在尝试使用 Java 8 新的 Javascript 引擎,即使它正在运行 Java 7,有什么想法吗?

我不知道他是否安装了 Java 8(但我问过),但我知道他实际上是在使用 Java 7 来运行应用程序,因为我在启动时会自动检查和记录。这使

18/02/2014 21.47.09:com.jthink.songkong.cmdline.SongKong:writeSystemInfo:INFO: SongKong 1.17.0 using Java 1.7.0_45 24.45-b08 32bit on Windows 7 6.1 x86 初始化成功

失败的代码很简单:

0 投票
0 回答
325 浏览

java - 使用 nashorn 脚本引擎而不是动态加载的 jar 来获取动态运行时代码是否有任何性能提升?

我最近ScriptEntine在 java 中发现了 API,主要是因为阅读了 Nashorn 在 JDK8 中的信息。

因为您可以使用 Nashorn 在 Javascript 中执行 java 代码,所以我想知道使用脚本引擎将外部代码加载为 Javascript 是否比从外部 jar 加载类更有益。

两种选择的优缺点是什么?

0 投票
3 回答
7564 浏览

java - Avatar.js 和项目 Avatar

在 Java 8 和 Nashorn 的上下文中,我看到经常提到两个项目。

Avatar.js项目 Avatar

这些项目的关系是什么?

Avatar.js 的文档很少。据我所知,它提供了在 JVM 上执行节点应用程序的可能性。

Project Avatar 似乎建立在 Avatar.js 之上。然而,范围似乎是为 Java EE 7 提供替代的 Web 框架。是否也可以使用 Project Avatar 执行节点程序(如 grunt)?

0 投票
1 回答
2102 浏览

java-8 - Java 8 Nashorn:控制台非常不可用

我在 OSX 10.9.2 上使用 Java 8 build 1.8.0-b132。

我正在使用 Java 8 中的新 JavaScript 运行时 Nashorn。

我正在使用Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/bin/jjs但不幸jjs的是在交互模式下非常不可用,因为光标左/右不起作用:

jjs
jjs> var x =^[[D

上面的输出 (^[[D) 是按下“左光标”的结果。有没有办法修复这种行为并在 jjs 控制台中使用左/右光标?

0 投票
7 回答
18206 浏览

javascript - Java8 JS Nashorn 将数组转换为 Java 数组

如何将 JS 数组转换为原生数组?在 Rhino 中转换看起来像(Scala 代码):

在 Nashorn NativeArray 中不存在,我找不到任何关于转换的文档。

0 投票
7 回答
22522 浏览

rhino - 从 Rhino 切换到 Nashorn

我有一个 Java 7 项目,它大量使用 Javascript 编写各种功能的脚本。到目前为止,我一直在使用 Rhino 作为脚本引擎。我现在想迁移到 Java 8,这也意味着我将用 Nashorn 取代 Rhino。

Nashorn 与 Rhino 的兼容性如何?我可以将它用作替代品,还是我可以期望我的某些脚本不再工作并且需要移植到新引擎?Rhino 有哪些常用的功能是 Nashorn 不支持的?

0 投票
1 回答
11703 浏览

java - Java 8 Javascript 引擎向后兼容

我正在我的项目中试用 Java 8,但遇到了与构建过程相关的错误。

我正在使用 ANT 脚本,并且在某些时候我正在使用一些 javascript(嵌入到 ANT 中)来执行一些特定于构建的操作。导致错误的脚本部分如下所示:

该项目使用 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 引擎兼容?

0 投票
1 回答
6994 浏览

javascript - 如何从Javascript将字符串写入标准输出

我对将字符串写入标准输出的可移植方式感兴趣,无需在末尾添加隐式换行符,理想情况下强制编码为 UTF-8,适用于

  • jrunscript(来自任何 JDK)
  • 犀牛
  • 节点.js

我当前的代码尝试检测它在哪里运行,然后使用特定于平台的写入方法:

它应该导致:

这可以做得更好吗?

对于 jrunscript,我一直在使用 function print,但这代表JDK-8021773改变了它在 JDK-8 中的行为。

0 投票
4 回答
10807 浏览

java - 使用 Java 和 Nashorn 编写脚本的新手,有任何教程吗?

有没有什么好的教程或类似的东西可以说明这一点?尽管我已经熟悉 JavaScript,但我还没有用 Java 编写任何脚本。谢谢。本质上,我想使用 JavaScript/XML 来处理我的部分项目。我知道 Java 8 通过 Nashorn 引入了 JavaScript 支持。我想了解这是如何工作的。我知道它涉及使用 javax.script,但我不知道该包是如何工作的,也不了解 Nashorn 是如何工作的。

0 投票
3 回答
7895 浏览

java - 使用 Nashorn (JSR 223) 和预编译的 Java 脚本

我通过 JSR 223 使用 Nashorn 来执行用户输入脚本的小片段:

不同的用户脚本调用定义在静态中央库中的 JavaScript 函数(保存在functions上面代码片段中的字符串中)。

每次我想获得一个Invocable我可以从我的 Java 调用的东西时,我都不得不不断地重新编译大型库代码。

有没有办法将以前编译的代码与新代码结合起来?