10

Mountain Lion にアップグレードして以来、Java ScriptEngineManager を介して AppleScript コードを実行できません。

Apple のページ (リンク) にあるサンプル コードは、オブジェクトに対して null を返しますengine

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);
}

回避策を知っている人はいますか?

4

5 に答える 5

3

Mac OS X 10.7 (Lion) の /System/Library/Java/Extensions/ から AppleScriptEngine.jar と libAppleScriptEngine.jnilib をコピーし、クラスパスに追加することで、これを機能させました。

Apple が Mountain Lion でこれらの拡張機能を削除した理由は不明です。ここの開発者フォーラムでそれについて尋ねました: link

于 2012-08-30T00:37:13.500 に答える
2

AppleScriptEngine クラスはすでに rt.jar (Mac OS X 用の Java 7) にあります。ここの情報 ( http://docs.oracle.com/javase/7/docs/api/?javax/script/package-summary.html )に従って、javax.script というファイルを配置して「検出可能」にする場合.ScriptEngineFactory を META-INF/services の下に配置すると、/System/Library/Java/Extensions/ の AppleScriptEngine.jar に依存せずに動作します。個人的には、すでに rt.jar にあるものを使用する方が堅牢だと思います。

于 2013-06-18T21:12:27.093 に答える