我在Java应用程序中启动JavaScript(-file)时遇到了一些问题。我知道应用程序可以通过简单的脚本启动,如果我把它放入sample.js。实际调用如下:如何在Java应用程序中通过JavaScript启动程序?
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启动应用程序。有没有人有想法,如何开始该计划?
谢谢大家! ^^
编辑:谢谢你的答案现在!由于我无法从JVM中获取ActiveXObject,是否有另一种通过JScript启动外部应用程序的方式?我不在乎,如果它是一个ActiveXObject。
埃姆,我真的不明白你的帖子。如果浏览器中可用于JScript的所有对象都可用于JVM中的JScript,那么为什么这是reasen,我的程序没有像我想要的那样运行? – Gruber 2011-03-10 10:21:14
@Gruber对不起,在'不'中遗漏了't'。我的意思是说'ActiveXObject'由浏览器实例化并提供给JavaScript运行时使用。当您在JVM内部运行JavaScript时,没有浏览器可以为您创建此对象。 – Nishan 2011-03-10 10:54:49