6

我有几个想要从 Java 运行的 AppleScript。我有几个选择,包括:

  • 使用 AppleScript ScriptEngine 将 AppleScript 作为字符串运行(使用((new ScriptEngineManager()).getEngineByName("AppleScript")).eval(scriptString))
  • 将 AppleScript 保存为应用程序并从 Java 运行应用程序(使用Desktop.getDesktop().open("name.app")
  • 这两个对我来说似乎是最好的选择,我想知道

  • 有没有更好的办法?
  • If !(1.) 这两种方法中哪一种是最好的?(快速)
  • 如果!(1。)有没有办法改进我的方法?
  • 4

    3 回答 3

    1

    不确定我会选择 2,这似乎是一个非常大的锤子。

    另一种旧式解决方案是执行“osascript”命令。

    据我所知,使用脚本引擎支持是首选方法。

    于 2011-12-28T13:42:29.170 回答
    1

    您的第一个选项对我来说听起来不错,但如果出于某种原因您想将其作为外部脚本运行,您可以考虑以与运行 shell 脚本相同的方式运行 osascript。

    于 2011-12-28T16:03:34.567 回答
    1

    我猜想选项 1 可能是你最好的选择,因为 Applescript 是如何工作的。

    Applescript 有两种类型:纯文本 Applescript,然后编译 Applescript。已编译的 Applescript 已被 Applescript 编译器(基本上)翻译成字节码。

    因此,如果您的应用程序允许,您可以考虑编译所有 Applescripts一次,然后再调用它们。这将为您节省一些时间(几秒钟?)。

    (我只是在这里猜测,除了eval命令之外,您的 Java 类还有一种方法来编译 Applescript。)

    在编译阶段,Applescript 还会尝试识别脚本使用的所有应用程序。我相信在这个阶段,Applescript 可能会说,“对不起,我找不到 SurfWriter,请指点我的应用程序”。这种用户体验是用户希望尽可能少做的事情之一;)

    于 2011-12-28T17:09:57.357 回答