6

Java から実行したい AppleScript がいくつかあります。次のようないくつかのオプションがあります。

  • AppleScript ScriptEngine を使用して AppleScript を文字列として実行する (を使用((new ScriptEngineManager()).getEngineByName("AppleScript")).eval(scriptString)))
  • AppleScript をアプリケーションとして保存し、Java からアプリを実行する (を使用Desktop.getDesktop().open("name.app"))
  • これらの 2 つは私にとって最良の選択肢のように思えました。

  • より良い方法はありますか?
  • If !(1.) これら 2 つの方法のうち、どちらが最適ですか? (スピードワイズ)
  • If !(1.) メソッドを改善する方法はありますか?
  • 4

    3 に答える 3

    1

    最初のオプションは私には正しいように聞こえますが、何らかの理由で外部スクリプトとして実行したい場合は、シェルスクリプトを実行するのと同じ方法でosascriptを実行することを検討できます。

    于 2011-12-28T16:03:34.567 に答える
    1

    2 にするかどうかはわかりませんが、それは非常に大きなハンマーのようです。

    もう 1 つの古いスタイルの解決策は、'osascript' コマンドを実行することでした。

    私が知る限り、スクリプト エンジン サポートを使用することが推奨される方法です。

    于 2011-12-28T13:42:29.170 に答える
    1

    Applescript の仕組みから、オプション 1 が最善の策であると思います。

    Applescript には、プレーン テキストの Applescript とコンパイル済みの Applescript の 2 種類があります。Complied Applescript は、Applescript コンパイラによって (本質的に) バイトコードに変換されています。

    したがって、アプリケーションで許可されている場合は、すべての Applescriptを一度コンパイルしてから、後で呼び出すことを検討してください。これにより、時間を節約できます (数秒?)。

    (ここでは、evalコマンドに加えて、Java クラスには Applescript をコンパイルする方法があると推測しています。)

    コンパイル段階で、Applescript はスクリプトが使用するすべてのアプリケーションを識別しようとします。Applescript が「すみません、SurfWriter が見つかりません。アプリを教えてください」と言うのは、この段階だと思います。この種のユーザー エクスペリエンスは、ユーザーができる限りやりたくないことの 1 つです ;)

    于 2011-12-28T17:09:57.357 に答える