自从升级到Mountain Lion以来,我无法通过Java ScriptEngineManager运行AppleScript代码。
在Apple页面(link)上找到的示例代码为engine
对象返回null。
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);
}
有人知道有什么解决方法吗?
最佳答案
我通过在jar的文件夹“META-INF/services”中添加名为“javax.script.ScriptEngineFactory”的文件来工作,如ytw所示。
我还必须更改一些代码:语言似乎不再是“AppleScript”,而是“AppleScriptEngine”。所以这应该工作:
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);
}
至少这在我的JDK 1.7.45的MacOS X Mavericks上有效...