我對最新的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秒的延遲,但它不能解決問題。
因爲我沒有更多想法去嘗試,所以我希望有人能夠提供幫助。
感謝您的建議,SSCCE添加了(普通jar,嵌入applet,但在manifest中有main和main類)。它可以使用「java -jar」命令行運行。 – Alban
好的,抱歉誤會。順便說一下,如果有人想嘗試一下,他/她只需複製/粘貼我指出的代碼,並通過調用checkAppleScript()方法編寫自己的主要方法。無論如何,我終於解決了我的問題,我將它添加爲我的問題的答案:) – Alban
*「我終於解決了我的問題」*幸福。 :)期待看到你的答案。 –