我在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