0

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

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

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

4

1 回答 1

1

我相信您可以将代码放入一个变量中(在此示例中,它称为 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),并且可能还有双引号(如果有)(将它们替换为\"

于 2013-08-12T04:13:19.593 回答