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

标签 java javascript rhino javax.script

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

new ActiveXObject("MyApp.Application");

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

// create a script engine manager
ScriptEngineManager factory = new ScriptEngineManager();
// create a JavaScript engine
ScriptEngine engine = factory.getEngineByName("JavaScript");
// evaluate JavaScript code from String
engine.eval("new ActiveXObject(\"MyApp.Application\");");

如果出现以下异常:

Exception in thread "main" javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "ActiveXObject" is not defined. (<Unknown source>#1) in <Unknown source> at line number 1
    at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:110)
    at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:124)
    at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:247)
    at com.ime.actia.testing.ScriptTest.main(ScriptTest.java:13)

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

谢谢大家! ^^

<小时/>

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

最佳答案

浏览器中的 JavaScript 代码可以使用环境(即浏览器)提供的宿主对象。 ActiveXObject 就是 IE 提供的此类对象之一。从您的异常跟踪来看,该对象在您的环境中似乎不可用。

关于java - 如何在 Java 应用程序中通过 JavaScript 启动程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5257980/

相关文章:

java - Hadoop java mapper -copyFromLocal 堆大小错误

java - 如何使用 JAXB 映射 XML 标记的封闭内容?

java - 何时调用 response.body().close()

java - 发布数据时无法得到回复?

javascript - 来自文本框的动态进度条

javascript - 如何并排显示图像

javascript - Javascript 中的作用域链

java - 如何使用 Rhino shell 将 JavaScript 代码序列化到文件?

java - 如何使用 Rhino 在 Javascript 中将 Java 类中的方法添加为全局函数?

javascript - RingoJS javascript - 在控制台上获取用户输入