Java的ScriptEngineManager不再与山狮的AppleScript的工作原理 [英] Java ScriptEngineManager no longer works with Mountain Lion's AppleScript
问题描述
自从我升级到山狮,我无法通过Java运行ScriptEngineManager我的AppleScript code。
Ever since I upgraded to Mountain Lion, I can't run my AppleScript code through the Java ScriptEngineManager.
苹果公司的网页(链接)上找到的样品code返回null为引擎
对象。
The sample code found on Apple's page (link) returns null for the engine
object.
public static void main(String[] args) throws Throwable {
String script = "say \"Hello from Java\"";
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("AppleScript");
engine.eval(script);
}
有人知道任何变通办法?
Anybody know of any workarounds?
推荐答案
我得到它作为YTW指定的文件夹中添加名为的javax.script.ScriptEngineFactory文件META-INF /服务我的罐子工作。
I get it working by adding a file named "javax.script.ScriptEngineFactory" in the folder "META-INF/services" of my jar as ytw indicated.
我也得改了一下code的:语言似乎不再是AppleScript的,而是AppleScriptEngine。所以这应该工作:
I also have to change a bit of code: language seems to no longer be "AppleScript" but "AppleScriptEngine". So this should work:
public static void main(String[] args) throws Throwable {
String script = "say \"Hello from Java\"";
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("AppleScriptEngine");
engine.eval(script);
}
至少这个工程对我的MacOS X小牛JDK 45年7月1日...
At least this works on my MacOS X Mavericks with JDK 1.7.45...
这篇关于Java的ScriptEngineManager不再与山狮的AppleScript的工作原理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!