从Java执行AppleScript的最佳方法
问题描述:
我有几个AppleScript,我想从Java运行。我有几个选项,包括: 从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,请将我指向应用程序”。这种用户体验是用户希望尽可能少做的事情之一;)