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 中通过命令行执行时可以的哈!

        以上,欢迎交流~ 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值