我有几个想要从 Java 运行的 AppleScript。我有几个选择,包括:
((new ScriptEngineManager()).getEngineByName("AppleScript")).eval(scriptString))
)Desktop.getDesktop().open("name.app")
)这两个对我来说似乎是最好的选择,我想知道
我有几个想要从 Java 运行的 AppleScript。我有几个选择,包括:
((new ScriptEngineManager()).getEngineByName("AppleScript")).eval(scriptString))
)Desktop.getDesktop().open("name.app")
)这两个对我来说似乎是最好的选择,我想知道
不确定我会选择 2,这似乎是一个非常大的锤子。
另一种旧式解决方案是执行“osascript”命令。
据我所知,使用脚本引擎支持是首选方法。
您的第一个选项对我来说听起来不错,但如果出于某种原因您想将其作为外部脚本运行,您可以考虑以与运行 shell 脚本相同的方式运行 osascript。
我猜想选项 1 可能是你最好的选择,因为 Applescript 是如何工作的。
Applescript 有两种类型:纯文本 Applescript,然后编译 Applescript。已编译的 Applescript 已被 Applescript 编译器(基本上)翻译成字节码。
因此,如果您的应用程序允许,您可以考虑编译所有 Applescripts一次,然后再调用它们。这将为您节省一些时间(几秒钟?)。
(我只是在这里猜测,除了eval
命令之外,您的 Java 类还有一种方法来编译 Applescript。)
在编译阶段,Applescript 还会尝试识别脚本使用的所有应用程序。我相信在这个阶段,Applescript 可能会说,“对不起,我找不到 SurfWriter,请指点我的应用程序”。这种用户体验是用户希望尽可能少做的事情之一;)