Ich habe es funktioniert, indem ich eine Datei mit dem Namen "javax.script.ScriptEngineFactory" in den Ordner "META-INF / services" in meinem Jar als ytw angegeben.
Ich muss auch ein wenig Code ändern: Sprache scheint nicht mehr "AppleScript", sondern "AppleScriptEngine" zu sein. Also sollte das funktionieren:
%Vor%Zumindest funktioniert das auf meinen MacOS X Mavericks mit JDK 1.7.45 ...
Ich habe dieses Problem auf bugreport.apple.com (Bug-ID: 12692742) veröffentlicht. Ich habe diese Antwort erhalten:
20-Feb-2013 04:21 PM Apple Entwickler-Fehlerberichterstattungsteam: Wir denken, Sie hatten eine Installation von Lion mit JavaDeveloper. Sie haben ein Upgrade auf Mountain Lion durchgeführt, das (von Entwurf) alle Spuren von zuvor installiertem Java SE 6 unter / System entfernt hat. Dies hinterließ ein funktionales SE 6 JDK Bundle unter / Library / Java / JavaVirtualMachines, aber die Inhalte von / System / Library / Java / Extensions waren weg.
Sie können dies auf verschiedene Arten lösen:
1) Installieren Sie das JavaDeveloper-Paket erneut auf dem Mountain Lion-System.
2) Installieren Sie Java für OS X erneut, indem Sie alle JDK-Bundles unter / Library / Java / JavaVirtualMachines und / System / Library / Java / JavaVirtualMachines entfernen und "java -version" oder "/ usr / libexec / java_home - Anfrage 'Installation-on-Demand zu initiieren.
3) Installieren Sie Java 7 von Oracle, das AppleScriptEngine bündelt.
Von den 3 Optionen ist # 3 die Empfehlung, da Entwickler sowieso zu Java 7 wechseln sollten.
Ich habe das geschafft, indem ich AppleScriptEngine.jar und libAppleScriptEngine.jnilib aus / System / Library / Java / Extensions / unter Mac OS X 10.7 (Lion) kopiert habe und es zu meinem Klassenpfad hinzugefügt habe.
Nicht sicher, warum Apple diese Erweiterungen in Mountain Lion entfernt hat. Ich habe darüber in ihren Entwicklerforen gefragt: link .
Die AppleScriptEngine-Klasse befindet sich bereits in rt.jar (Java 7 für Mac OS X). Wenn Sie die Informationen hier ( Ссылка ) beachten, machen Sie Es kann gefunden werden, indem eine Datei namens javax.script.ScriptEngineFactory unter META-INF / services abgelegt wird. Dann kann es funktionieren, ohne auf die AppleScriptEngine.jar in / System / Library / Java / Extensions / angewiesen zu sein. Persönlich finde ich es robuster, was bereits in rt.jar verwendet wird.
Unter Mac OS Yosemite, Java - Version: 1.7.0_40-ea
ScriptEngine-Engine = mgr.getEngineByName ("AppleScriptEngine");
Erstellen Sie in Ihrem src-Verzeichnis das Verzeichnis META-INF
Erstellen Sie in Ihrem src-Verzeichnis das Verzeichnis META-INF / services
Erstellen Sie die Datei META-INF / services / javax.script.ScriptEngineFactory
In dieser Datei befindet sich eine Zeile:
apple.applescript.AppleScriptEngineFactory
Erstellen und starten Sie die Anwendung! (Übrigens ist es nicht mehr Java, es ist Magie)
Tags und Links java applescript osx-mountain-lion