{"id":4210,"date":"2018-08-29T21:51:55","date_gmt":"2018-08-29T19:51:55","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=4210"},"modified":"2018-08-29T21:51:55","modified_gmt":"2018-08-29T19:51:55","slug":"standard-edition-java-se-openjdk","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2018\/08\/standard-edition-java-se-openjdk\/","title":{"rendered":"Standard Edition (Java SE): OpenJDK"},"content":{"rendered":"<p>Das freie und unter der GPL stehende OpenJDK\u00a0(http:\/\/openjdk.java.net\/) bildet die Referenzimplementierung f\u00fcr Java SE. Alle Entwicklungen finden dort statt. Der Fortschritt ist live zu beobachten, regelm\u00e4\u00dfig fixen und erweitern Hunderte von Entwicklern die Codebasis. Die Quellen f\u00fcr das OpenJDK\u00a0lassen sich im Mercurial Repository unter http:\/\/hg.openjdk.java.net\/jdk\/jdk11 einsehen, ein Wechsel auf GitHub wird diskutiert.<\/p>\n<h4>OpenJDK-Builds von Oracle<\/h4>\n<p>\u00dcbersetzte Versionen sind \u00fcber http:\/\/jdk.java.net\/ verklinkt, es gibt von Oracle OpenJDK x64-Builds f\u00fcr<\/p>\n<ul>\n<li>Windows<\/li>\n<li>Linux<\/li>\n<li>macOS<\/li>\n<li>Alpine Linux<\/li>\n<\/ul>\n<h4>OpenJDK-Builds von AdoptOpenJDK<\/h4>\n<p>Auch unter https:\/\/adoptopenjdk.net\/ l\u00e4sst sich f\u00fcr unterschiedliche Betriebssysteme eine Version herunterladen. Angeboten werden x64-Builds f\u00fcr<\/p>\n<ul>\n<li>Windows<\/li>\n<li>Linux<\/li>\n<li>macOS<\/li>\n<li>Linux s390x<\/li>\n<li>Linux ppc64le<\/li>\n<li>Linux aarch64<\/li>\n<li>Linux arm32<\/li>\n<li>AIX ppc64<\/li>\n<\/ul>\n<p>AdoptOpenJDK ist eine Serverfarm, die regelm\u00e4\u00dfig Builds vom OpenJDK baut, dazu weitere Software wie die JavaFX-Implementierung OpenJFX und alternative Laufzeitumgebungen wie Eclipse OpenJ9 einbindet.<\/p>\n<h4>Weitere OpenJDK-Builds<\/h4>\n<p>Das Unternehmen Azul bietet ebenfalls Builds an, auch l\u00e4sst sich ein Support-Vertrag abschlie\u00dfen: http:\/\/www.azul.com\/downloads\/zulu\/. Neben den Plattformen Windows, Linux und macOS gibt es von Azul ebenfalls Docker-Images.<\/p>\n<p>Red Hat bietet neben Linux auch eine Windows-Version vom OpenJDK an: http:\/\/developers.redhat.com\/products\/openjdk\/overview\/.<\/p>\n<p>Apple pflegte lange Zeit eine komplett eigene JVM, bis Apple den Code an Oracle f\u00fcr das OpenJDK \u00fcbergab. Auch Google setzt bei Android neuerdings auf das OpenJDK.<\/p>\n<h3>OpenJDK unter Windows installieren<\/h3>\n<p>W\u00e4hrend Oracle ein JDK und ein JRE anbietet und alles mit einem Installationsprogramm ausliefert, kommt das OpenJDK nur als \u00a0komprimiertes Archiv. Wir laden von http:\/\/jdk.java.net\/10\/ f\u00fcr Windows die TAR.GZ-Datei, hinter der eine Datei wie openjdk-10.0.2_windows-x64_bin.tar.gz steckt. Wir ben\u00f6tigen einen Entpacker wie 7-Zip f\u00fcr das unter Windows ehr ungew\u00f6hnliche Dateiformat.<\/p>\n<h4>Programme und Ordner im Java-Verzeichnis<\/h4>\n<p>Nach dem Auspacken entsteht ein Ordner jdk-10.0.2 mit dem OpenJDK. Es enth\u00e4lt ausf\u00fchrbare Programme wie Compiler und Interpreter sowie die Bibliotheken und Quellcodes. Wenn wir die Rechte haben, wollen wir den JDK-Ordner in der Windows-Programmorder setzen und f\u00fcr die weiteren Beispiele folgenden Ort annehmen: C:\\Programme\\Java\\jdk-10.<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"110\"><strong>Ordner\/Datei<\/strong><\/td>\n<td width=\"490\"><strong>Bedeutung<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"110\">bin<\/td>\n<td width=\"490\">Hier befinden sich Entwicklungswerkzeuge, unter anderem der Interpreter java und beim JDK der Compiler javac.<\/td>\n<\/tr>\n<tr>\n<td width=\"110\">conf<\/td>\n<td width=\"490\">Konfigurationsdateien, Anpassungen sind hier selten n\u00f6tig.<\/td>\n<\/tr>\n<tr>\n<td width=\"110\">include<\/td>\n<td width=\"490\">Dateien f\u00fcr die Anbindung von Java an C(++)-Programme<\/td>\n<\/tr>\n<tr>\n<td width=\"110\">jmods<\/td>\n<td width=\"490\">Java-Module vom JDK, etwa das Basis-Modul<\/td>\n<\/tr>\n<tr>\n<td width=\"110\">legal<\/td>\n<td width=\"490\">eine Reihe von COPYRIGHT-Textdateien<\/td>\n<\/tr>\n<tr>\n<td width=\"110\">lib<\/td>\n<td width=\"490\">interne JDK-Tools<\/td>\n<\/tr>\n<tr>\n<td width=\"110\">lib\/src.zip<\/td>\n<td width=\"490\">Archiv mit dem Quellcode der \u00f6ffentlichen Bibliotheken*<\/td>\n<\/tr>\n<tr>\n<td width=\"110\">release<\/td>\n<td width=\"490\">Datei mit Sch\u00fcssel-Wert-Paaren<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Tabelle: Ordnerstruktur<\/p>\n<h4>Testen der Installation und Pfade setzen<\/h4>\n<p>Gehen wir in das bin-Verzeichnis C:\\Program Files\\Java\\jdk-10\\bin k\u00f6nnen wir aufrufen:<\/p>\n<p>C:\\Program Files\\Java\\jdk-10\\bin&gt;<strong>java -version<\/strong><\/p>\n<p>openjdk version &#8222;10.0.2&#8220; 2018-07-17<\/p>\n<p>OpenJDK Runtime Environment 18.3 (build 10.0.2+13)<\/p>\n<p>OpenJDK 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)<\/p>\n<p>Wir erweitern als n\u00e4chstes die PATH-Variable um das bin-Verzeichnis. Wenn wir jetzt eine Shell \u00f6ffnen, k\u00f6nnen wir javac f\u00fcr den Java-Compiler aufrufen oder java f\u00fcr die Laufzeitumgebung. Auch kann eine Entwicklungsumgebung wie Eclipse gestartet werden.<\/p>\n<h4>OpenJDK deinstallieren<\/h4>\n<p>Nach dem L\u00f6schen des Ordners ist Java deinstalliert.<\/p>\n<h4>Download der Dokumentation<\/h4>\n<p>Die API-Dokumentationen der Standardbibliothek und die der Tools sind kein Teil des JDK; eine Trennung ist sinnvoll, denn sonst w\u00fcrde der Download nur unn\u00f6tig gr\u00f6\u00dfer, die Dokumentation kann schlie\u00dflich auch online angeschaut werden. Die Hilfe kann online unter https:\/\/docs.oracle.com\/javase\/10\/docs\/api\/ eingesehen oder als ZIP-Datei extra bezogen und lokal ausgepackt werden.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das freie und unter der GPL stehende OpenJDK\u00a0(http:\/\/openjdk.java.net\/) bildet die Referenzimplementierung f\u00fcr Java SE. Alle Entwicklungen finden dort statt. Der Fortschritt ist live zu beobachten, regelm\u00e4\u00dfig fixen und erweitern Hunderte von Entwicklern die Codebasis. Die Quellen f\u00fcr das OpenJDK\u00a0lassen sich im Mercurial Repository unter http:\/\/hg.openjdk.java.net\/jdk\/jdk11 einsehen, ein Wechsel auf GitHub wird diskutiert. OpenJDK-Builds von Oracle [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[11],"tags":[],"class_list":["post-4210","post","type-post","status-publish","format-standard","hentry","category-insel"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/4210","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=4210"}],"version-history":[{"count":2,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/4210\/revisions"}],"predecessor-version":[{"id":4212,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/4210\/revisions\/4212"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=4210"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=4210"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=4210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}