问题标签 [javax.script]

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 回答
4021 浏览

javascript - javax.script 提供的 JavaScript 中可用的 Rhino load() 函数?

一些为 Rhino 的 shell 开发的 JavaScript 文件使用 load() 来加载额外的 JavaScript 文件。我正在尝试使用 javax.script 从这些 Rhino JavaScript 文件之一嵌入功能。不幸的是,javax.script 的 JavaScript 没有实现 load() 函数。尝试 eval() 包含 load() 的脚本时,会发生以下错误:

javax.script 在从 Java 程序(而不是从 shell)中评估 JavaScript 文件时是否提供了 load() 函数?

0 投票
1 回答
2693 浏览

java - 用于 Jython 的 sqlite3 模块

我正在使用 Java Scripting API 从我的 Java 应用程序中执行一些外部 Python 脚本。python 脚本使用 sqlite3 模块。执行应用程序导致错误

当我查看LibJython 的目录(位于类路径中)时,没有 sqlite3 模块。因此,我的搜索开始了,我找到了一个_sqlite3.py文件,它是javasqlite( http://bugs.jython.org/issue1682864 ) 的实现。它的使用产生了更多类似的错误。

然后我sqlite3从python的标准库位置搜索了原始python的包(原始目录)并将其放在Jython的Lib文件夹中。然后它找不到作为库的导入_sqlite模块_sqlite.so(实际的 C 实现)。

所以,现在我需要帮助。

0 投票
2 回答
1153 浏览

java - Felix 不喜欢 javax.script

我正在使用 javax.script 包编写一个 OSGI 包,并且在让 Felix 正确加载包时遇到了一些问题。尝试启动捆绑包时,我得到:

org.plugin.script.plugin-scripter [2] 的包启动失败:org.osgi.framework.BundleException:包 2 中未解决的约束:包;(包=javax.script)

我认为当我们尝试引用未正确加载到包中的包时会发生这种情况。我相当肯定这是因为 javax.script 仅从 1.6 开始捆绑到 JDK 中,并且出于某种原因,Maven 正在使用其他东西进行构建。到目前为止,我已经:

一个。通过以下方式在我的 Maven POM 中为 Felix 设置必要的导入:

湾。将 Maven 编译器设置为 1.6,因为这是我们获得 javax.script 的最早版本

C。甚至不确定这是否会有所不同,但我将 Felix 的框架属性(在他们的 config.properties 中)设置为 1.6.0 并包含 javax.script 导出。TBH 我不确定这个,但我想我会试一试。

仍然是nadda tho。我还错过了什么?

0 投票
2 回答
2017 浏览

java - 如何在 Java 应用程序中通过 JavaScript 启动程序?

我在从 Java 应用程序中启动 JavaScript(-file)时遇到了一点问题。如果我将应用程序放入 sample.js,我知道应用程序可以通过一个简单的脚本启动。实际调用如下:

如前所述,通过双击脚本文件启动没有问题,但如果我通过 javax.script 包尝试它:

如果得到以下异常:

Microsoft Windows Script 安装在实际版本中。我知道,ActiveX 是特定于 IE 的,但无论如何我都不想在 IE 中/通过 IE 启动应用程序。有人知道如何启动程序吗?

感谢大家!^^


编辑:现在感谢您的回答!由于我无法从 JVM 中获取 ActiveXObject,是否有另一种方法可以通过 JScript 启动外部应用程序?我不在乎,如果它是一个 ActiveXObject。

0 投票
1 回答
453 浏览

javax.script - 使用 javax.script 运行多个脚本的有效方法

我正在开发一个游戏,我希望有多个脚本都实现相同的结构。每个脚本都需要在自己的范围内运行,以便代码不会与其他脚本重叠。例如:

结构.js

现在,假设我有:“BadGuy.js”、“ReallyReallyBadGuy.js”、“OtherBadGuy.js”——就结构而言,它们都与上述类似。在游戏中,每当发生事件时,我都想调用适当的函数。

问题归结为效率和速度。我通过为每个脚本实例创建一个引擎(使用getEngineByName)找到了一个可行的解决方案,但这对我来说似乎并不理想。

如果没有更好的解决方案,我可能会求助于每个脚本都有自己独特的类/函数名称。IE

坏人.js

0 投票
0 回答
579 浏览

java - 如何使用类型参数从 Java 的 ScriptEngine(javascript) 静态调用方法?

我在运行时从 jarfile 加载一个类(因为脚本不会总是使用那个确切的 jar),所以我有一个 Class 对象。我也是从javax.script.ScriptEngine(javascript)做的。那个类有方法public static <T> User get(T base)。我需要打电话给它。最好的方法是什么?

在我看来,关于java脚本的文档并不多......

我只需要在一个类中找到一个名为“get”的方法,其参数类型为Tusing Class's getMethod(String name, Class[] argumentTypes)...

0 投票
2 回答
1159 浏览

java - Can you extend Abstract Java Classes from JavaScript?

I'm working on a project that makes really heavy use of the javax.script.* packages. I have a situation where I would like to create JavaScript objects that extend an Abstract Java Class, much like you can use Invocable.getInterface to make JavaScript objects that implement Java interfaces. Is this possible? And, if so, how do you do it?

0 投票
2 回答
827 浏览

java - ScriptEngineManager.getEngineFactories 在 appengine 上不返回任何工厂

以下代码返回一个空数组。

它在开发环境中工作,但未部署。
即使将rhino中的 js.jar 添加到 lib 文件夹并将其添加到类路径中,也找不到 EngineFactories。

我究竟做错了什么?

0 投票
1 回答
2398 浏览

java - TypeError:在对象中找不到函数 getElementById

我正在编写自动化脚本,我需要从 iframe 读取数据(以验证内容)。在我的 Java 代码中

和 readIFrameContent.js 是

但我得到一个错误。

javax.script.ScriptException:sun.org.mozilla.javascript.internal.EcmaError:ReferenceError:“文档”未定义。(#3) 在第 3 行

所以我搜索了一个解决方案并编辑了函数

现在错误是

javax.script.ScriptException:sun.org.mozilla.javascript.internal.EcmaError:TypeError:
在对象 [object Object] 中找不到函数 getElementById。(#4) 在第 4 行

请提出建议。

0 投票
4 回答
22133 浏览

java - 将 Javascript 数组转换为 Java 数组

我正在尝试将 Java 中的 Javascript 数组转换为 Java 数组。我正在使用 javax.script 包。我在这里测试了这个例子,但是“NativeArray”类型没有被识别:https ://stackoverflow.com/a/1433489/975097

如何让 NativeArray 类型被识别?