问题标签 [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 - JavaScript 的 Java 解析器:列出所有函数/变量
我打算在 java 中实现一个 JavaScript 解析器。我知道有几种方法可以做到这一点。有一些视图框架/引擎/解析器可以帮助做到这一点,比如:
- ANTLR 3/4 : v3 似乎只有一个 js 语法
- Mozilla Rhino:atm 我可以解析初始(顶部)命名空间上的变量名。但我无法解析嵌套范围,例如对象成员.. 嗯..
- Nashorn:也许我应该试一试..?
也许:
- 闭包编译器:恕我直言,这非常好。但不适用于“非谷歌”js-code :) 例如,您必须对您的 javascript 源应用多个编码约定才能使其正常工作..
- 也许可以调整Packer来做到这一点?是否有Packer的 Java 实现???
有与本文相关的EcmaScript 5.1。这似乎很舒服。但这并不是我要找的……而且仍然没有 java :)
我的问题是:
什么可能/将是解析 JavaScript 的最佳方式:
- (对象-)函数名称
- (对象-)成员名称,例如变量
甚至有可能做到吗?
你的方法是什么?对我来说,解析 JavaScript 的所有特殊标记并不是必需的。重要的因素是在一致的上下文中解析函数/变量,以获取如下典型标记:
解析应该能够提供以下信息:
如果节点是函数/变量,则不需要任何直接确定。
java - 如何在 Java 对象中取消 javascript (nashorn) 返回的值?
我有以下程序,它在 Java (nashorn) 中执行 Javascript。Javascript 代码正在返回一个对象。
如何在 Java 中访问结果对象中的对象值?最初,我尝试使用result.toString()
来获得结果。好像return [Object Object]
有没有办法,我可以将结果返回给result
对象,这样我就可以获得相当于result.value
, 和result.count
(类似于 Javascript) 的值。
java - java.lang.ClassCastException:jdk.nashorn.internal.objects.NativeArray 不能转换为 java.lang.Comparable
使用 Nashorn 运行 JavaScript 时
我有
那么在 JavaScript 中使用 Java Collections 的方法是什么?
更新:
感谢 Attila,不是 JS 和 JJS 脚本都产生相同的输出
java - 如何在 Nashorn 的 javascript 中访问我的类中的方法
在 Nashorn 中,可以访问预定义的 java 类,
同样明智的是,可以在 java 脚本中访问我的类,如果可以,我应该如何在类路径中添加我的 jar 以引用它????
java - Java8 Nashorn - ReferenceError:未定义“eu”
我正在尝试从 Nashorn 执行的 JavaScript 调用类的静态方法:
不幸的是,我收到了这个错误:
调用 Nashorn 的类位于 eu.wansdyke... 包中,所以我对此感到有些惊讶。有什么我做错了吗?
java - Gradle 可以执行 JavaScript(而不是 Java 入口点)吗?
Gradle 可以执行 JavaScript 吗?
虽然 javascript 没有标准插件,但是否可以制作类似的东西JavaExec
原因:使用 Java 8 Nashorn 和 Avatar.js 项目应用程序入口点可以是 JavaScript 文件,而不是 Java。
搜索 Gradle JavaScript 插件提供了面向 Web 的解决方案,例如https://github.com/eriwen/gradle-js-plugin
Gradle相关执行Java类(无需修改build.gradle)
java - 运行 Nashorn JavaScript 的 Gradle 任务
是否有用于启动的 gradle/groovy 代码模拟java -Djava.library.path=lib -jar lib/avatar-js.jar helloWorld.js
,即使用 Java 8 启动 .js 文件并传递一些库
或使用定义的依赖项
我发现的唯一相关文档(在 Gradle 任务中构建和运行 jar)是第 45 章中的一行。应用程序插件
应用程序插件依赖于 Java,无法为 JavaScript 或 C/C++
CreateStartScriptsString mainClassName
定义任务(不是要运行的文件)
security - 如何在 SecurityManager 下运行 Java 8 的 nashorn
我正在寻找沙盒 Java 8 的 Nashorn javascript 引擎。我已经发现了 --no-java 标志,这很有帮助,但我还发现以下链接说需要“在启用 SecurityManager 的情况下运行”: http: //mail.openjdk.java.net/ pipermail/nashorn-dev/2013-September/002010.html
我还没有找到说明如何使用 Nashorn 完成此操作的文档,那么应该如何安全地完成此操作?
java - 仅使用 JavaScript (Nashorn) 进行 JavaFX 开发
既然 Nashorn 在 Java 8 中可用,有没有办法只用 JavaScript 文件编写 JavaFX 应用程序?我在哪里可以找到更多信息或视频?你会如何编译它?
或者是否需要最少的引导文件集?
java - 如何在 Scala 中将类放入 JJS ScriptEngine 的范围
在 scala 中运行时,我无法Class
进入范围。ScriptEngine
nashorn
这是我尝试做的事情:
有谁知道如何MyClass
启动JavaScript
?
我得到以下异常: