2017/9 wurden Änderungen im Java-Support-System und im Release-Zyklus von Oracle angekündigt, und verschiedene Gespräche über OpenJDK und Oracle JDK haben begonnen, sind jedoch nicht organisiert. Hier möchte ich die Begriffe aussortieren, die die Kernimplementierung von Java darstellen. Wenn Sie einen langen Satz haben, sollten Sie sich nur die Zusammenfassung ansehen.
Eine klare Definition des Begriffs Java ist schwierig, aber eines ist sicher: Es ist eine Marke von Oracle. "Java", das als Konversation verwendet wird, wird unter dem Wort "Java" gesprochen, z. B. Software-Implementierungs- und Entwicklungsumgebung, die sich auf die Java SE-Spezifikation, Bibliotheken, deren Entwickler / Organisationen, Communitys und Trends bei den verwendeten Produkten konzentriert. Ich denke, es enthält eine Vielzahl von technischen Fragen. Ich denke, dies gilt im Allgemeinen für Programmiersprachen wie Ruby und Scala.
Java SE ist eine Sammlung von Spezifikationen. Typische Beispiele sind die Java-Sprachspezifikation, die Java Virtual Machine-Spezifikation und die Java API-Spezifikation. Als Merkmal der API ist es schwierig, die Spezifikation und die Implementierung zu trennen, und es handelt sich nicht um eine Spezifikation, sondern die Bewegung wird in JavaDoc so detailliert wie möglich erläutert. Jede Spezifikation von Java SE wird von einem Prozess namens JCP festgelegt. Andere Unternehmen, Organisationen und Einzelpersonen als Oracle nehmen ebenfalls an JCP teil. Anschließend stellt Oracle ein TCK (Technology Compatibility Kit) zur Verfügung, mit dem überprüft wird, ob die Java SE-Implementierung diesen Spezifikationen entspricht. Wenn Sie dieses TCK durchlaufen, wird die Implementierung als Java SE-kompatibel erkannt. Ich werde. Um genau zu sein, existieren Java 8 und Java 10 nicht, und obwohl sie Abkürzungen für Java SE 8 und Java SE 10 sind, werden sie in der Praxis häufig verwendet. Insbesondere in der aktuellen Situation, in der Java EE nach Jakarta EE umgezogen ist und Java ME kaum in der Tabelle aufgeführt ist, hat die Notwendigkeit, es wie Java SE 11 zu schreiben, abgenommen, und das Schreiben wie Java 11 hat zugenommen. Ich glaube, es ist.
Auch in diesem Sinne sind die Ausdrücke "Verschwinden der Java SE-freien Version" und "Bezahltes Java SE" nicht sehr korrekt, aber ich denke, dass Oracle selbst das Wort Java SE vage verwendet. Dies kann jedoch als "Java SE auf der Oracle-Site ist JDK" interpretiert werden. Wenn also eine andere Person als Oracle auf die Java SE von Oracle verweist, wird sie wie "Oracle Java SE" "verschwunden". Ich denke, es ist genauer, etwas wie "Oracle Java SE Free Edition" oder "Bezahlte Oracle Java SE" zu verwenden.
Ein Open-Source-Projekt, das Software und verwandte Produkte auf Basis von Java SE entwickelt und einen Ort zum Speichern des Quellcodes für dieses Produkt bietet. Zu den OpenJDK-Produkten gehören Java-VMs, die gemäß den Spezifikationen der Java Virtual Machine arbeiten, Java-Compiler, die in einer auf den Java-Sprachspezifikationen basierenden Syntax geschriebenen Programmcode in Bytecodes konvertieren, die auf Java Virtual Machines ausgeführt werden, und Java VMs. Es enthält API-Implementierungen, die funktionieren und auf der Java-API-Spezifikation basieren, sowie Ausführungs- und Entwicklungsumgebungen wie Profiler und Debugger. Die OpenJDK Java VM wird als HotSpot VM bezeichnet.
Tatsächlich bieten wir keine Binärdateien an. Sie können die Binärdateien unter jdk.java.net herunterladen, aber java.net ist die Website von Oracle, auf der Sie OpenJDK-Binärdateien herunterladen können, die Oracle erstellt und getestet hat. Andere wie Adopt OpenJDK, Azul System und Red Hat stellen ihre eigenen Build-Binärdateien bereit. Google hat eine OpenJDK-Binärdatei für seinen Cloud-Dienst.
JDK ist auch eine Marke von Oracle und steht für Java Development Kit. Der Produktname des von Oracle bereitgestellten Java SE-Entwicklungstoolkits. Es ist im Grunde als Open JDK entwickelt.
Da es sich um ein Development Kit handelt, enthält es Tools, die für die Entwicklung erforderlich sind, z. B. einen Compiler. Was nur zur Laufzeit benötigt wurde, wurde als JRE (Java Runtime Environment) verteilt, ist aber seit Java 9 veraltet.
Wenn wir einfach JDK sagen, ist es schwer zu sagen, ob es sich um ein Open JDK oder ein Oracle JDK handelt. Daher heißt es jetzt Oracle JDK, um es zu unterscheiden. Das Oracle JDK war die OpenJDK-Implementierung mit kommerziellen Funktionen wie Flight Recorder und Mission Control sowie Desktop-Funktionen wie JavaFX und Java Web Start. Kommerzielle Funktionen wie Flight Recorder und Mission Control werden jedoch an OpenJDK gespendet, und JavaFX und Java Web Start werden nicht mehr mit Oracle JDK gebündelt, sodass OpenJDK und Oracle JDK ab Java 11 funktional identisch sind. Es ist geworden. Es ist also nicht so, dass es keinen Unterschied in den Binärdateien gibt. Das Oracle JDK wird mit einem Installationsprogramm geliefert. Nachdem es keine Update-Versionen für OpenJDK gibt, werden die Update-Versionen mit eigenen Patches veröffentlicht. Natürlich ist auch die Lizenz anders.
Java = Ökosystem Java SE = Spezifikation OpenJDK = Open Source-Projekt, das Java SE implementiert Oracle JDK = OpenJDK, erstellt von Oracle + Installer
OpenJDK auf jdk.java.net = OpenJDK von Oracle erstellt AdoptOpenJDK OpenJDK = OpenJDK, erstellt von der AdoptOpenJDK-Community Zulu = OpenJDK + Installer von Azul IBM Java SDK = OpenJDK, erstellt vom IBM --HotSpot VM + OpenJ9 + Installer
Recommended Posts