问题标签 [scriptengine]
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.
c - 从内存加载程序集(嵌入式 Mono 运行时)
我想从内存中加载单声道程序集。因此,我没有使用通常的 mono_domain_assembly_open ,而是使用mono_image_open_from_data。返回的图像和程序集都正常,状态为MONO_IMAGE_OK。
但是,当我尝试使用以下方法从程序集中获取类时:
我得到my_class == NULL。当我使用通常的mono_image_open_from_data单声道返回一个有效的类实例。我怀疑该方法无法正确加载所有引用。您有什么建议或解决方法吗?
java - 在 java 中使用 ScriptEngine,如何提取函数列表?
使用 Jsoup,我在 html 文件中提取 JavaScript 部分。并将其存储为 java String 对象。
我想使用javax.script.ScriptEngine提取 js 函数中的函数列表、变量列表
JavaScript 部分有几个函数部分。
前任)
我的目标就在下面。
列表函数列表
a b c
列表 varListA
a_1 a_2 ...
列表 varListB
b_1 b_2 ...
列表 varListC
c_1 c_2 ...
如何提取函数列表和变量列表(或者可能是值)?
java - Java ScriptEngine:验证 Invocable.getInterface(Class ) 返回一个真实的实现
我对将 ScriptEngine 合并到我的代码库中感到非常兴奋,并计划使用它从持久化脚本中动态构建接口实现。
我正在为将脚本数据转换为 Java 接口实例的一般实现编写 JUnit 测试用例。我似乎发现您不需要在脚本中实际实现整个接口,就可以将其视为Invocable.getInterface(Class<?>)
该接口的对象。根据文档,getInterface
我认为如果没有给出完整的实现,我可以指望它返回 null:
使用Class<?>
对象并调用isInstance(Object)
结果Invocable.getInterface(Class<?>)
似乎总是返回 true。我猜想将动态类型化脚本语言实现映射到静态类型化 Java 接口存在概念上的挑战。但是,如果您尝试在此对象上调用任何未实现的方法,则会出现问题,您会得到一个NoSuchMethodException
.
以下是一些有助于说明的代码片段:
测试
转换脚本相关片段
结果
这条线被击中queue.add(""); //Sanity check. Don't want to get here. Throws NoSuchMethodException
,或者如果我删除该健全性检查,基本 AssertTrue 会失败,因为它返回一个 Queue 对象。
问题
如何验证从 ScriptEngine/Invocable 的 getInterface(Class) 方法中提取的对象实际上返回了 Class 接口的完整实现?
java - 如何将类型 Object 从 engine.eval 转换为类型 int
我的程序接受一个字符串输入并使用engine.eval()
来自 ScriptEngine 的导入来计算它。如何将评估值转换为 int 类型?
groovy - 从 IDEA 调试在 ScriptEngine 中运行的 Groovy 脚本
在我的应用程序中,我将类路径中的脚本文件加载到字符串中,然后将其传递给 ScriptEngine。但是,脚本文件中设置的断点不会触发。我怎样才能让它工作?我使用 Intellij IDEA。
java - Java ScriptEngineManager 和 DOM
有谁知道任何ScriptEngine
理解/包含隐式DOM
对象(如window
,document
等)的 Java self
?我不能使用JavaFX WebEngine
,因为我没有开发 JavaFX 应用程序。
java - 如何在 Java 中求解字符串中的基本数学方程?
我有一个设置的基本计算器,所以当按下相等按钮时,JTextField 以字符串形式保存,这就是问题所在,它是字符串形式,所以我不知道如何求解方程。我尝试过使用 JavaScript 引擎,但无法弄清楚。有什么帮助吗?
java - Java SE 6 之前的脚本引擎?
出于某种原因,我必须使用 Java 5。我从 java se 7 开始学习编程,所以我对旧版本不熟悉。
javax.script
包,其中包含ScriptEngine
类和ScriptEngineManager
类在 Java 5 中不存在。但是 Rhino 项目是在 Java 5 之前创建的。所以我想知道javax.script
在 Java 6 中引入之前如何使用 Java 脚本引擎?
(我浏览了 Java se 5 API 文档。似乎没有替代ScriptEngine
类。所有在线搜索结果都给了我现代代码。)
java - Java ScriptEngine 和父窗口函数
我正在使用 JavaScriptEngine
在程序中的某些条件下从支持 bean 调用 JS 函数。问题是 JSF 页面在 iFrame 中运行。虽然 iFrame 在这个阶段不是真正的问题,但我希望它能够浏览到新页面。为此,我使用了top.window.location
并且parent.location
他们通过单击按钮将页面加载到 iFrame 之外而没有问题。
这是我为此使用的代码示例:
我已经读过它们是从浏览器本身调用的,而parent.location
不是JavaScript。因此,因此,我收到以下错误:top.window.location
它与document.getElementById("someComponent")
其他类似的完全一样。而且似乎错误仍然存sun.org.mozilla.....
在于Chrome、IE和FF中。
所以问题是:我怎样才能让 JS 函数可能使用parent.location
?我想我需要检查使用的浏览器,然后根据浏览器从那里导入或调用某些东西,但我不确定我应该如何去工作。任何可以解决这个问题的线索都会非常有帮助。
提前致谢。
java - 如何使用 ScriptEngine 将 Javascript 的输出转换为 Java
有了这个简单的applescript,我可以列出iTunes中所有歌曲的名称
然后我使用 ScriptEngine 将它作为 Java 7 代码运行,但是如何获得脚本的结果很明显,在这种情况下,它只是最后一首曲目的名称。
更新:
http://www.informit.com/articles/article.aspx?p=696621&seqNum=6
但是通过代码更新为
只是输出
因此,您可以清楚地看到脚本的工作原理,因为 eval 显示了最后一首曲目的名称,但我没有从重定向的作者那里得到任何回报。想知道这真的适用于 applescript 吗?
更新 2 我用 Javascript 编写了一个测试,发现设置作者确实有效,所以我认为要么
- 在 OSX 上 Java 7 的早期访问版本的 Applescript 脚本引擎(我使用最近的版本 1.7.0_40-ea-b29)有一些问题)
- 我的 Applescript 是错误的,即,而不仅仅是nexttrack 的名称,我应该做一些类似nexttrack 的 echo name 的事情,以使其真正进入标准输出。
我想(2)是问题所在,但我找不到任何关于在 Applescript 中输出文本的引用,echo不是有效命令,并且print命令实际上确实尝试打印到打印机而不是打印到 stdout,因为它会在Java或C中。
更新 3 所以我无法让它工作,现在想知道 Applescript 是否只写返回值。我找到了一个使用 stdout 的示例(或者我认为),但我认为这只是一个命名约定,实际上它所做的只是不断地将数据附加到一个变量,并最终返回它。
所以我通过使用存储在文件中的以下脚本,然后在 Java 中使用 engine.eval(new java.io.FileReader(" filename ")
但这实际上并没有解决最初的问题,它的一个问题是,如果有任何错误,那么我不会得到任何回报,而如果它在读取我的 iTuneslibrary 的过程中失败并且我正在使用 stdout,我至少会得到一半数据回来。