java执行appleScript脚本
java执行appleScript脚本
·
也是参考了网上的一些帖子,但发现有些实现并不管用,此处总结记录下。
刚开始的尝试的是通过 scriptEngine 来执行 appleScript,但并不管用。代码如下:
public static void main(String[] args) {
String script = "set x to 20\n get x";
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("AppleScript");
try {
engine.eval(script);
} catch (ScriptException e) {
e.getMessage();
}
}
执行后,控制台报错如下:
开始以为是 appleScript 写法的问题,换了大小写以及 ”AppleScriptEngine“ 等几种写法发现都不行,开始试着看支持哪几类 engine。看了下源码,还真有这么个方法:
ScriptEngineManager mgr = new ScriptEngineManager();
List<ScriptEngineFactory> engineList = mgr.getEngineFactories();
System.out.println(engineList);
for (ScriptEngineFactory engine : engineList) {
System.out.println(engine);
}
执行结果如下:
只支持一种 engine,也就是 javaScript,此处各位可以自行执行下,就不演示了。看来这条路已经走不通了,那么通过终端执行命令行试试呢?
String script = "set x to 20\n get x";
ProcessBuilder pb = new ProcessBuilder("osascript", "-e", script);
pb.inheritIO();
try {
pb.start();
} catch (IOException e) {
System.out.println(e.getMessage());
}
执行结果如下:
bingo!看来在 java 中通过命令行执行时可以的哈!
以上,欢迎交流~
更多推荐
已为社区贡献4条内容
所有评论(0)