java - 如何从 java 包运行 Applescript

标签 java swing shell applescript

我正在尝试像这样在我的系统中运行我的applescript。

String cmd = "osascript " + cmdpath + "ReadNeofile.scpt";
UnixComm(cmd);

我使用Java Swing来开发该系统,它是一个独立的系统。 代码工作正常,我可以运行 applescript 并获取输入。我最大的缺点是,要做到这一点,我需要将苹果脚本保存在客户端电脑中。有没有什么方法可以从 java 包调用 applescript,因为在客户端电脑中保存脚本并不安全。我担心如果我的客户不小心删除了脚本,我的整个系统就会被损坏。请指教。

最佳答案

我相信您可以将代码放入变量中(在本例中,它称为 codeVar)并转义所有换行符和引号,然后将代码更改为:

String cmd = "osascript " + cmdpath + "<( echo '" + codeVar + "')";
UnixComm(cmd);
<小时/>

另一个解决方案是让代码将 applescript 放入 /tmp 中的文件中,并在/tmp 中运行代码,希望客户端不会删除它。 (使用完毕后该代码会被计算机删除)
示例是:

PrintWriter out = new PrintWriter("/tmp/myapplescript.scpt");
out.print(codeVar);
String cmd = "osascript " + cmdpath + "/tmp/myapplescript.scpt";
UnixComm(cmd);

两种解决方案都要求您拥有 applescript,并转义返回字符(将其替换为 \n),并且可能还需要双引号(如果有)(将其替换为 \“)

关于java - 如何从 java 包运行 Applescript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18179376/

相关文章:

swing - Javafx 替代 swing javax.swing.text.Document

java - 显示 (x,y) 偏移量的 MouseMotionListener

linux - 在 bash 中定义标志参数

java - 为什么 Inet6Address.getByAddress 需要主机名和直接地址字节?

java - 在MySql Workbench中添加DB用户或创建用户表

java - Spring MVC 无法解析 View 名称

java - 如何编写 shell 脚本来获取给定的进程空闲时间?

javascript - 如何让按钮根据文本文件改变颜色?

带有按键响应的 Java 计算器

java - 在 Java 程序中执行命令行参数时出现问题