Ich versuche, eine eigenständige Mac-App aus einer Java-Anwendung zu erstellen. Ich habe das .app-Verzeichnis eingerichtet, die Info.plist
-Datei konfiguriert, in Abhängigkeiten gebacken sowie eine Java-Laufzeitumgebung. Ich bin erfolgreich in der Lage, die .app zu öffnen und starten Sie das Programm und alles funktioniert mit Ausnahme eines eigentümlichen Stück Code:Java unter OS X: Der Befehl "open" wird nicht ausgeführt, wenn das .app-Paket ein JVM-Bundle enthält
ProcessBuilder pb = new ProcessBuilder("open", "/Applications/TextEdit.app");
pb.start();
Als ich das .app starten, dieser Code tut nicht scheinen oder zumindest zu laufen mach alles. Wenn ich den Paketinhalt öffne und die JAR-Datei öffne, läuft es einwandfrei. Ich habe es geschafft, es einzugrenzen, nur wenn die .app ein Java-Laufzeitpaket enthält. Da das Ausführen einer .jar-Datei das Java-System des Systems verwendet und die .app-Datei das gebündelte Java verwendet, muss dies der Grund sein, warum ich Probleme habe.
Die Version von meinem Mac installierten Java JDK sollte 1.8.0_77 sein. Die gebündelte Version sollte 1.8.0_74 sein. Ich nahm es aus der Moneydance Anwendung, wie ich es als Referenz verwendet, wenn ich meine .app.
Jede Hilfe wird sehr geschätzt, da dies der letzte Schritt zur Veröffentlichung sein sollte. Ich habe diese Frage genauer formuliert als meine andere Frage here.
Es wäre interessant, einen Ausdruck der PATH-Umgebungsvariablen unter den beiden JVMs zu sehen. – RealSkeptic
@RealSkeptic Es scheint, dass beide den gleichen PFAD von '/ usr/bin ausgeben:/bin:/usr/sbin:/sbin' –
OK, dann ist die nächste Sache zu sagen, was der genaue Exit-Code aus dem Prozess ist , und wenn es nicht null ist, geben Sie uns den Inhalt des Fehlerstroms. – RealSkeptic