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