我对最新的MacOS X版本有一个问题:小牛。我以前从Java调用AppleScript,在MacOS X 10.7.5上一切正常。对于小牛,我不得不做一些修改才能让AppleScriptEngine再次到达,但即便如此,我正在运行的脚本仍然返回了一个错误。
下面是我尝试过的:我的小代码:
private static final String SCRIPT =
"try\n"
+ " tell application \"Finder\"\n"
+ " delay 5\n"
+ " if exists application file id \"XCEL\" then return \"Excel found\"\n"
+ " end tell\n"
+ "on error errStr number errorNumber\n"
+ " error errStr number errorNumber\n"
+ "end try";
static void checkAppleScript() {
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine appleScript = mgr.getEngineByName("AppleScript");
if (appleScript != null) {
JOptionPane.showMessageDialog(null, "AppleScript found: " + appleScript);
try {
JOptionPane.showMessageDialog(null, appleScript.eval(SCRIPT));
} catch (ScriptException se) {
JOptionPane.showMessageDialog(null, se.getMessage());
}
} else {
JOptionPane.showMessageDialog(null, "NO AppleScript engine");
}
}我将其放入一个签名的jar文件中,其中包含清单中的以下属性:
当我从java命令行运行测试类时,在MacOS X 10.7.5和10.9.1中都可以找到Excel。
当我从Safari运行一个测试小程序时,在MacOS X 10.7.5上仍然可以找到Excel,但是在10.9.1中我收到了一条错误消息:"Finder获得了一个错误:应用程序没有运行“。
我看到这个错误可能导致脚本执行过快,这就是为什么我在我的脚本中增加了5秒的延迟,但它不能解决这个问题。
由于我没有更多的想法去尝试,我希望有人能帮助我。
发布于 2014-01-10 08:35:01
我终于找到了阻塞的地方: Safari中有一个安全选项,用于指示Java插件可以在不安全模式下运行于给定的服务器。激活这个解决了我的问题。
https://stackoverflow.com/questions/21014784
复制相似问题