问题标签 [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.
java - Nashorn NativeDate 转换为 java.util.Date
Date
在 Java 8 上使用 Nashorn将 Javascript 对象返回给 Java 时,如下所示:
通过以下尝试,我得到了例外:
Date javaDate = (Date)js;
jdk.nashorn.api.scripting.ScriptObjectMirror cannot be cast to java.util.Date
Date javaDate = js.to(Date.class);
Cannot cast jdk.nashorn.internal.objects.NativeDate to java.util.Date
Date javaDate = (Date)ScriptUtils.convert(js.to(NativeDate.class), Date.class);
Cannot cast jdk.nashorn.internal.objects.NativeDate to java.util.Date
回到 Rhino,我只是在使用context.jsToJava(nativeDateObj, Date.class);
.
有什么想法可以在返回 Java 时实际转换这个 NativeDate 吗?
PS 如果我执行 js.toString() 那么它会给我“[Date 2012-01-01T19:00:00.000Z]”。我想我可以正则表达式解析...但是为什么-哦-为什么...
java - 使用可变参数调用重载方法时出现 Nashorn 错误
假设以下 API:
以下 Nashorn JavaScript 代码段将失败:
将调用第一个方法而不是第二个。这是 Nashorn 引擎中的错误吗?
作为记录,这个问题之前在 jOOQ 用户组上报告过,其中方法重载和可变参数被大量使用,并且这个问题可能会导致很多麻烦。
关于拳击
可能有人怀疑这可能与拳击有关。它没有。当我这样做时也会出现问题
和:
接着:
java - 如何从java 8中的js函数获取数组输出?
我在文件 test.js 中有以下方法:
我想将一个数组从 java 传递给这个函数,并在 java 中获取 js 输出数组。我使用了以下java代码:
我能够看到avg js函数的输出,但我不知道如何从 java 中的 js avg 函数获取 js 输出数组
任何支持表示赞赏。
最好的问候, Aurelian
java - 在 Nashorn 中将 URLConnection 转换为 HttpUrlConnection
我有一些代码:
这会引发异常:TypeError: sun.net.www.protocol.http.HttpURLConnection: http://twitter.com/ is not an Object
任何人有任何想法如何处理这个?
java - Nashorn 可写属性
我正在尝试在 Java8 的 Nashorn 中的对象文字中使用不可写属性,如下所示:
代码打印 200 我期待一个错误,因为我已将 x 定义为不可写。
如果我使用 Object.defineProperty() 函数来创建属性或将属性设置为不可写,它就可以工作。正如预期的那样,以下代码会导致错误:
我的问题是为什么在表达式中将可写属性设置为 false 在{ x: {value: 100, writable:false}}
第一种情况下不起作用?是 Nashorn 错误还是我遗漏了什么?
java - 在多个 nashorn ScriptEngines 之间共享 JavaScript 数组和对象
我在使用 nashorn 时遇到问题,我不太了解原生构造函数的工作原理(对象、数组等)。
我的问题涉及应用程序生命周期中的多个 ScriptEngine,其中一些可以创建函数。
我尝试在新的 ScriptEngines 中使用这些函数,问题是我无法检查对象是否属于给定类型(array instanceof Array),因为该 Array 不是由该实例的 Array 构造函数生成的。
这是一个复制它的测试:
我读了这篇文章https://wiki.openjdk.java.net/display/Nashorn/Nashorn+jsr223+engine+notes并试图像这样解决它,但仍然没有运气
你知道如何让它工作吗?
javascript - 如何使用 Nashorn 调试 JavaScript 程序?
我需要能够调试 Nashorn 运行的 JS 代码,即:
现在我需要在 JS 文件中添加一个断点,并且能够以编程方式单步执行这些行(实现一个调试器)。
我知道 IntelliJ 和 NetBeans 实现了这一点,所以它应该是可能的,但我在 Nashorn 中找不到任何允许步进和/或映射行或变量的 API。
任何建议/链接都将受到欢迎。提前致谢。
java - Nashorn 启动缓慢可以克服吗?
我已经将 Rhino 用于图形内部的脚本组件。在该项目中有大约 200 个独立运行的小脚本。启动应用程序时,脚本应立即全速运行。Rhino 的表现已经足够了,但是由于 Oracle 建议迁移到 Nashorn,我面临着两难境地。
下面的图片显示了 Rhino 和 Nashorn 在大约 15,000 次脚本调用时的负载差异。Nashorn 的启动缓慢是我最大的问题。
请注意,这又回到了 JDK 1.8.0。JDK 1.8u5 类似
我希望图片清楚。
这是我如何使用 ScriptEngine 的概述:
- 我正在使用一个脚本引擎实例,
- 我为每个脚本创建一个 CompiledScript 对象,
- Swingworker 执行 CompiledScript.eval() 一次。
- SwingWorkers 每半秒启动一次。
- 每个 CompiledScript 都有自己的 SimpleScriptContext 实例,每次执行都会重用该实例。
下面我包含了一个运行时配置文件,说明引擎随着时间的推移有多忙;
有谁知道如何克服 Nashorn 的启动缓慢?
2015年 4 月 15 日更新
在 Java8u45 上使用 200 个单独的脚本运行相同的测试。
性能要好很多!在 Java7 上运行速度与 Rhino 一样快。
java-8 - Java 8,将 Nashorn 与 Java 8 紧凑型配置文件结合使用
是否可以将Nashorn(Java8 的新 JavaScript 引擎)与三个 Java 8 紧凑型配置文件中的每一个一起使用?
java - 在 Nashorn 中执行 javascript 时找不到文件异常
我是 nashorn 引擎的新手。在我的 java 代码中,我在 filereader 中指定了 javascript 路径,但它在运行时抛出了 filenotfoundexception。如果我将我的 javascript 放在桌面并给出该位置,我的代码是有效的。但是如果我把我的 javascript 函数放在一个项目中的文件夹不起作用会引发文件未找到异常。这是我的错误代码
这是我的工作代码
我正在使用 java 独立应用程序。我的代码
nashorn1.js
任何帮助将不胜感激!!