Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一些来自JavaApplet的AppleScript不再适用于Mavericks_Java_Applet_Applescript_Osx Mavericks - Fatal编程技术网

一些来自JavaApplet的AppleScript不再适用于Mavericks

一些来自JavaApplet的AppleScript不再适用于Mavericks,java,applet,applescript,osx-mavericks,Java,Applet,Applescript,Osx Mavericks,我对最新的MacOSX版本有一个问题:Mavericks。我曾经从Java小程序调用AppleScript,在MacOS X 10.7.5上一切都很好。对于Mavericks,我必须做一些更改才能再次访问AppleScriptEngine,但即使如此,我正在运行的脚本仍返回一个错误 以下是我尝试过的: 我的小代码: private static final String SCRIPT = "try\n" + " tell application \"Fin

我对最新的MacOSX版本有一个问题:Mavericks。我曾经从Java小程序调用AppleScript,在MacOS X 10.7.5上一切都很好。对于Mavericks,我必须做一些更改才能再次访问
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文件中,清单中有以下属性:

  • 可信库:true
  • 应用程序名称:TestingAppleScript
  • 权限:所有权限
  • 代码库:*
当我从java命令行运行测试类时,可以在MacOS X 10.7.5和10.9.1上找到Excel

当我从Safari运行一个测试小程序时,在MacOS X 10.7.5上仍然可以找到Excel,但在10.9.1上我收到一条错误消息:“Finder出错:应用程序未运行”

我看到这个错误可能会导致脚本执行过快,这就是为什么我在脚本中添加了5秒延迟,但它并没有解决问题


由于我没有更多的想法可以尝试,我希望有人能够提供帮助。

我终于找到了阻碍因素:Safari中有一个安全选项,表明Java插件可以在给定服务器的不安全模式下运行。激活这个解决了我的问题。

谢谢你的建议,SSCCE补充道(普通的jar,也嵌入了小程序,但清单中有一个main和一个main类)。它可以用“java-jar”命令行运行。啊,好的,很抱歉误解了。顺便说一下,如果有人想尝试,他/她只需复制/粘贴我指示的代码,并通过调用checkAppleScript()方法编写自己的主方法。无论如何,我终于解决了我的问题,我会把它作为我问题的答案:)“我终于解决了我的问题”幸福期待你的回答。