Die Anwendung "Java-Einstellungen" auf meiner OS X Lion-Workstation zeigt an, dass Java SE 6 v1.6.0_29-b11-402 installiert ist (sowohl 32- als auch 64-Bit-Versionen). Leider brauche ich zusätzliche Funktionen, die nur in der Enterprise Edition verfügbar sind.
Ein Kommentar von 'Jesper' in ' Wie installiert man a Spezifische jdk unter Mac OS X? "schlägt vor, dass ich die Java von Apple, anstatt die von Oracle / Sun verwenden muss. Leider scheint Apple keine Enterprise Edition von Java 6 anzubieten.
Dies führt mich zu einer Reihe von Fragen:
** Bearbeiten **
Diese Frage ist das Ergebnis einer anderen Frage, die ich gepostet habe: RESTful-Webdienst: java.lang.NullPointerException service.AbstractFacade.findAll . Es scheint, dass dieser bestimmte Fehler das Ergebnis einer fehlenden Annotation (@Stateless) ist. Diese Annotation ist im javax.ejb. * -Namespace 'enthalten', der in einer .JAR-Datei enthalten ist, die sich nicht auf meiner Workstation befindet.
Dies führte mich zu dem Schluss, dass ich die "Enterprise Edition" von Java 6 brauchte (die die fehlende .JAR-Datei und andere abhängige Dateien enthalten würde). Ich vermute, wenn es einen Weg gab zu bestimmen, welche JAR-Datei fehlt (Netbeans 7 scheint nicht dabei zu helfen), könnte ich es wahrscheinlich einfach zum Projekt hinzufügen und die EE-Probleme überspringen.
Es gibt keine spezielle Laufzeit namens Enterprise Edition von Java für jede Plattform.
Es gibt Java SE und es gibt einfach einige Schnittstellen, die ein Enterprise Edition Container implementiert.
Sun hat den Markt vor Jahren mit der Namenskonvention verwechselt, als sie auf J2EE kamen. Es war nie eine separate Version von Java, nur einige auf APIs angeheftet, die, wenn ein Server sie implementiert und eine Zertifizierung bestanden hat, sich selbst als J2EE-Container bezeichnen könnte.
Sie verwirrten den Markt weiter, als sie anfingen, Java EE 6 zu nennen.
Wenn Sie gegen diese APIs entwickeln, benötigen Sie nur die .jar-Dateien, die diese Schnittstellendeklarationen enthalten. Sie können diese API-JAR-Dateien herunterladen, die früher als J2EE bezeichnet wurden. Aber sie sind für sich selbst ziemlich nutzlos.
Aber ich bezweifle, dass Sie einen Java EE-Server schreiben wollen, den Sie verwenden möchten. Wenn Sie einen Server verwenden möchten, müssen Sie einen Java EE-kompatiblen Server herunterladen und die bereitgestellten JAR-Dateien verwenden.
Jede IDE, die Sie verwenden sollten, enthält diese in irgendeiner Form, normalerweise indem Sie einen Server definieren, gegen den Sie bereitstellen. Tomcat ist kein vollwertiger EE-Container. Es handelt sich um einen Servlet-Container, der eine Teilmenge der vollständigen EE-Spezifikationen darstellt.
Ab OSX Lion liefert Apple kein JDK mehr , es ist nur das Oracle, das Sie anscheinend schon erfolgreich erworben.
Java EE 6 ist eine Spezifikation, mit einigen begleitenden API als Schnittstellen dargestellt. Java EE 6 ist an und für sich keine Implementierung dieser APIs. Wenn Sie die Java EE 6-APIs verwenden möchten, benötigen Sie einen kompatiblen Java EE-Anwendungsserver. Glassfish ist die Referenzimplementierung von Java EE 6, es gibt jedoch auch andere Server, die kompatibel sind. JBoss ist eine weitere beliebte Option.
Diese können problemlos unter Mac OS X installiert werden.
Es gibt einen Java EE-Download. Ссылка Allein, es ist nicht besonders nützlich, es sei denn, Sie versuchen, eine zu entwickeln Anwendung, die in mehreren Containern ausgeführt werden soll.
Was Sie normalerweise tun möchten, ist einen Container herunterzuladen und damit zu entwickeln. z.B. Glassfish (verfügbar unter obenstehendem Link). Diese Aufgabe kann mit Unterstützung von IDE wie Netbeans erleichtert werden. Sie können eine Version von Netbeans herunterladen, die bereits Glassfish und die Java EE-APIs enthält und einfach zu arbeiten beginnt. Andere IDE / Container-Kombinationen sind möglich, normalerweise gibt es eine Art Plugin.
Das Java 6 JDK / JRE für OSX stammt immer noch von Apple. Sie übertrugen den Großteil des Codes jedoch auf Oracle, und die OSX-Version von JDK 7 ist nahe am Release-Status und könnte für Ihre Zwecke reif genug sein. Meine beste Vermutung ist, dass es ist.