简而言之,重新安装苹果Java支持以恢复AppleScript支持。
您需要实际检查支持的脚本引擎。以下代码返回受支持的脚本引擎,这些是唯一受支持的脚本引擎:
import java.util.List;
import javax.script.*;
public class ListEngines {
public static void main(String args[]) {
ScriptEngineManager sem = new ScriptEngineManager();
for (ScriptEngineFactory factory : sem.getEngineFactories()) {
System.out.println(factory.getEngineName());
System.out.println(factory.getNames());
}
}
}
在El Cap上安装Java 6之前,我对Oracle JRE的两个版本都收到了以下报告:
当我在Java 8上运行它(Oracle)时:
$ /usr/libexec/java_home -v 1.8 -e java ListEngines
Oracle Nashorn
[nashorn, Nashorn, js, JS, JavaScript, javascript, ECMAScript, ecmascript]
Java 7(Oracle):
$ /usr/libexec/java_home -v 1.7 -e java ListEngines
Mozilla Rhino
[js, rhino, JavaScript, javascript, ECMAScript, ecmascript]
在重新安装苹果JRE后 -
从这个苹果URL,Java 6(苹果 - 您必须手动重新安装此版本):
$ /usr/libexec/java_home -v 1.6 -e java ListEngines
Mozilla Rhino
[js, rhino, JavaScript, javascript, ECMAScript, ecmascript]
AppleScriptEngine
[AppleScriptEngine, AppleScript, OSA]
现在,Oracle VM 支持 AppleScript。
$ /usr/libexec/java_home -v 1.8 -e java ListEngines
AppleScriptEngine
[AppleScriptEngine, AppleScript, OSA]
Oracle Nashorn
[nashorn, Nashorn, js, JS, JavaScript, javascript, ECMAScript, ecmascript]
看起来你需要明确地重新安装苹果JRE才能在El Cap上获得AppleScript支持(可能也适用于旧版本)。
引起AppleScript支持的原因是,当你安装苹果提供的JRE时,OSX会安装一堆扩展 - 这些库位于/System/Library/Java/Extensions中。其中一个库是AppleScriptEngine.jar(和相应的libAppleScriptEngine.jnilib)。