Java的ScriptEngineManager不再与山狮的AppleScript的工作原理 [英] Java ScriptEngineManager no longer works with Mountain Lion's AppleScript

查看:440
本文介绍了Java的ScriptEngineManager不再与山狮的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆