2014-01-09 36 views
1

我對最新的MacOS X版本有問題:Mavericks。我曾經從Java applet中調用AppleScript,並且在MacOS X 10.7.5上一切正常。去小牛隊,我不得不做一些改動,以使AppleScriptEngine可以再次到達,但即使如此,我正在運行的腳本正在返回一個錯誤。Java Applet中的某些AppleScript不再與小牛一起工作

這裏是我的嘗試: 我的一小段代碼:

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文件與清單以下屬性:

  • 可信庫:真
  • 應用程序名稱:TestingAppleScript
  • Permissions:all-permissions
  • Codebase:*

當我從java命令行運行測試類時,Excel在MacOS X 10.7.5和10.9.1上均可找到。

當我從Safari運行測試小程序時,Excel仍在MacOS X 10.7.5上找到,但在10.9.1上出現錯誤消息:「Finder出錯:應用程序未運行」。

我看到這個錯誤可能會導致腳本執行速度過快,這就是爲什麼我在腳本中添加了5秒的延遲,但它不能解決問題。

因爲我沒有更多想法去嘗試,所以我希望有人能夠提供幫助。

+0

感謝您的建議,SSCCE添加了(普通jar,嵌入applet,但在manifest中有main和main類)。它可以使用「java -jar」命令行運行。 – Alban

+0

好的,抱歉誤會。順便說一下,如果有人想嘗試一下,他/她只需複製/粘貼我指出的代碼,並通過調用checkAppleScript()方法編寫自己的主要方法。無論如何,我終於解決了我的問題,我將它添加爲我的問題的答案:) – Alban

+0

*「我終於解決了我的問題」*幸福。 :)期待看到你的答案。 –

回答

0

我終於找到了什麼是阻塞的:Safari中有一個安全選項,表明Java插件可以在給定服務器的不安全模式下運行。激活這個解決了我的問題。

相關問題