2011-01-15 5 views
24

Ab der nächsten Version von Mac OS X ist Java nicht mehr im System enthalten und ich möchte meine Kunden nicht zwingen, sie selbst zu installieren. Also würde ich gerne tun, was ich unter Windows mache - bündle es mit meiner App. Es gibt mir auch die Hoffnung, dass es in den Mac App Store aufgenommen werden kann.Eine private JRE unter Mac OS X bündeln

Wo kann ich eine Mac OS X JRE herunterladen, die ich in meine Anwendung aufnehmen könnte? Oder kann ich einfach den auf meinem Mac installierten kopieren?

+0

Nur neugierig, wo haben Sie gelernt, dass Mac OS X keine JRE enthalten wird? –

+0

Java 6 SE wird unter OS X 10.7 verfügbar sein: http://www.apple.com/pr/library/2010/11/12openjdk.html – mipadi

+0

@mipadi: Ich denke, das Schlüsselwort ist "verfügbar", im Gegensatz zu "in der Standardinstallation enthalten". Vielleicht lässt sogar Apple ihre Optionen für 10.7 offen. Tatsache ist jedoch, dass ein Programm, das Java benötigt, nicht für den Mac App Store geeignet ist. Java wird früher oder später ein optionaler Download sein, zuerst von Apple, dann von Oracle. –

Antwort

12

Update (2013.04.15):

Als Thorbjørn helfend wies darauf hin, Oracle nun eine Lösung für diese hat. Siehe http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html. Allerdings behalte ich den ursprünglichen Inhalt für "historische Zwecke" und weil es ein lustiges Forschungsprojekt war.

Vorherige Version (mit Änderungen):

Dies ist eine große Frage. Ich wollte Ihnen antworten, dass Sie Ihrer Zeit einfach voraus sind - wie Sie bereits sagten, wird Java erst bei der Veröffentlichung des Lions entfernt. Allerdings macht this article deutlich, dass heute mit Hilfe von Java ist nicht erlaubt:

Apps, die oder optional installierte Technologien veraltet verwenden (zum Beispiel Java, [PowerPC-Code erfordern] Rosetta) wird zurückgewiesen.

Zur gleichen Zeit hat niemand eine verteilbare JRE für Mac OS X angekündigt. Ich denke, Ihre beste Wette, wenn Sie bedenken, dass Sie neue Wege gehen, ist die Mac OS X Port wiki page des OpenJDK-Projekts zu überprüfen. Es tut beschreibt, wie Sie Ihr eigenes JDK kompilieren, aber es tut nicht deutlich angeben, ob das resultierende JDK sauber oder nicht "gebündelt" werden kann oder nicht. Ich denke, du musst es versuchen und sehen :-(.

Auch ist es nicht klar, ob die OpenJDK-Lizenzierung dies überhaupt erlaubt (IANAL). Hoffentlich hat jemand anderes dies bereits in Bezug auf Linux/Windows herausgefunden, obwohl natürlich können die Regeln für den Apple-Beiträge unterschiedlich sein

this helps Wenn nichts anderes, es ist ein Ausgangspunkt ist

EDIT:.... ich werde einen weiteren Vorschlag werfen wir jetzt wissen, dass Mono apps can be packaged for the App Store. Darüber hinaus ist IKVM.NET eine vollständige Implementierung von Java, die auf Mono läuft.Sie könnten theoretisch versuchen, diese beiden Teile zusammen zu stellen und eine Java-App zu bekommen, die für den App Store gebündelt ist, die nicht erfordert, tatsächlich eine JRE!

Wenn Sie dies versuchen, würde ich gerne hören, wie es funktioniert :-).

EDIT 2: Leider scheinen der App Store und die GPL nicht kompatibel zu sein (siehe http://www.zdnet.com/blog/open-source/no-gpl-apps-for-apples-app-store/8046). Die OpenJDK-Lizenz ist nicht genau das gleiche wie die GPL, aber es ist ziemlich nah (wieder, IANAL). Daher kann Mono & IKVM.NET Ihre beste Wette sein. Viel Glück!

+3

Sie müssen Ihre App nicht über den App Store verteilen. Wenn Sie dies tun, können Sie ein JRE damit bündeln und es auch unter der GPL veröffentlichen. (Dies richtet sich eher an das OP als an Matt Solnit, aber ich hielt es für wichtig, hier zu kommentieren.) – mipadi

+0

[Link] [1] von [mipadi] [2] behauptet, dass Java ein Teil von 'Lion' wäre. Ich bin verwirrt. [1]: http://www.apple.com/pr/library/2010/11/12openjdk.html [2]: http://stackoverflow.com/users/28804/mipadi –

+0

@unhillbilly du bist Richtig, es ist mein Fehler. Lion enthält Java 6, aber Java 7 wird separat von Oracle heruntergeladen. Dies ändert jedoch nichts an der Situation im App Store. –

-2

Apple ist dem Sun/Oracle OpenJDK-Open-Source-Projekt letzten Monat beigetreten, so dass Java auf Apple am Leben und Treten ist.

Sagen Sie dem Benutzer einfach, dass er das OpenJDK JRE für Mac OSX herunterladen und installieren soll (sobald es verfügbar ist, ist es jetzt nur Quellcode).

Und nein. Sie können "den Ordner, der in Ihrem Mac ist" nicht ohne Erlaubnis einschließen, da es urheberrechtlich geschützter Code von Apple ist.

Schließlich ist das Verpacken einer "privaten JRE" eine sehr schlechte Praxis, es wird Ihre Anwendung aufgebläht, und wenn der Benutzer endet, mehrere Java-Anwendungen zu laufen, wird er am Ende mehrere Java VMs gleichzeitig laufen, was eine schreckliche Verschwendung von ist Systemressourcen.

+1

Mir ist die Situation von Apple/Oracle bekannt. Das löst mein Problem nicht. Neben dem Kompilieren in nativen Code ist das Packen einer privaten JRE die einzige Möglichkeit, eine Java-App in den Mac App Store zu bekommen. Die Regeln sagen, dass eine App keine Abhängigkeiten zu optionalen Drittanbieterkomponenten haben darf. Also kann ich leider nicht "dem User einfach sagen". –

+1

Sie können derzeit niemandem sagen - und werden * niemals * in der Lage sein, den App Store-Benutzern zu erklären, "das OpenJDK JRE für Mac OS X herunterzuladen und zu installieren", so beantwortet dies die Frage nicht wirklich. – Chuck

4

In der gleichen Websuche, die ich diese Frage habe, habe ich die these instructions aus dem OpenJDK-Projekt gefunden. Da ich sie nicht selbst ausprobiert habe, kann ich nicht sagen, wie gut sie funktionieren.

Inzwischen wurde eine weitere, very detailled article von Marco Dinacci veröffentlicht, die auch in Signieren und Sandboxing geht.