So wechseln Sie von Oracle Java 8 zu Adopt Open JDK 9

Einführung

Aufgrund von Änderungen im Release-Zyklus von Oracle und Änderungen im Lizenz-Support-Format denke ich, dass die Java-Community derzeit mit Support beschäftigt ist. Bezahlte Unterstützung ist in Bezug auf die Kosten schwierig, und es gibt viele Fälle, in denen der Veröffentlichungszyklus nur ein halbes Jahr beträgt. Daher scheint Adopt OpenJDK als Option einer der führenden Kandidaten zu sein. Ich habe versucht, es zu erkunden und vorzustellen, deshalb werde ich es hier zusammenfassen.

** Ergänzung. Zunächst wollte ich den Artikel auf AdoptOpenJDK 11 ändern. Ich habe diesen Artikel während des Upgrades der Anwendungsversion geschrieben, aber unterwegs habe ich festgestellt, dass die Kernbibliothek Java 9 oder höher nicht unterstützt. Ich werde es bei einer anderen Gelegenheit versuchen, um den Artikel zu vervollständigen, aber bis dahin kann ich nur an AdoptOpenJDK Java9 schreiben. ** ** **

Vorherige Information

from Java:Oracle Java 8 to java:AdoptOpenJDK9 OS:Windows 64bit、Linux(CentOS)64bit

herunterladen

Herunterladen von AdoptOpenJDK. Die neueste Release-Seite kann möglicherweise nur für eine einzelne Plattform erstellt werden. Ich denke, es ist besser, sie einzeln auf der Archivseite unten auszuwählen. https://adoptopenjdk.net/archive.html 2018-11-09_18h52_55.png

  1. Wählen Sie eine Version Dieses Mal werden wir von Java 8 auf 9 erhöhen, sodass wir jeweils 8 und 9 erhalten (obwohl es sich um dieselbe Version handelt, überprüfen Sie Oracle Java 8 → AdoptOpenJDK9).
  2. Wählen Sie eine JVM (Java Virtual Machine Selection). Wählen Sie die JVM-Implementierung aus, die Sie verwenden möchten. Ich denke, es wird ein Kriterium sein, Hotspot zu verwenden, wenn Sie sogenanntes Oracle Java verwenden, und OpenJ9, wenn Sie IBM Java verwenden. Ich kann nicht viel von diesen glaubwürdigen Informationen finden, und obwohl es eine sensationelle Geschichte ist, habe ich den Eindruck, dass das Ändern der JVM beängstigend ist. Obwohl es sich um einen persönlichen Blog handelt, gab es eine Person, die den Benchmark gemessen hat, daher werde ich ihn nur vorstellen. In diesem Zusammenhang war Hotspot hinsichtlich der CPU-Geschwindigkeit und OpenJ9 hinsichtlich der Speicherersparnis von Vorteil. https://royvanrijn.com/blog/2018/05/openj9-jvm-shootout/ https://royvanrijn.com/blog/2018/05/openj9-hotsport-specjvm2008/ Wie im Link beschrieben, sollten Sie dieses Ergebnis jedoch nicht selbst messen und in der Zielumgebung messen, wenn Sie richtig urteilen.

Installation

Wie installiert man

Es kommt nicht mit einem Installationsprogramm wie Oracle Java. Die offizielle Installationsmethode wird im Folgenden kurz erläutert, ist jedoch etwas subtil (ich verwende JAVA_HOME nicht), daher werde ich sie ein wenig ändern. https://adoptopenjdk.net/installation.html?variant=openjdk8&jvmVariant=hotspot

  1. Herunterladen Wie oben erwähnt.
  2. (Optional) Prüfsumme Da die Dateigröße ziemlich groß ist, überprüfen Sie den Prüfsummenwert, wenn Sie sich Sorgen über Beschädigungen machen.
  3. Archiverweiterung Entpacken Sie es zunächst entsprechend der Umgebung, in der Sie .zip oder .tar.gz verwenden. Platziere sie überall. ex) Windows:「C:/Program Files/Java/jdk8u192-b12」 Linux:「/user/java/jdk8u192-b12」
  4. Gehen Sie durch PATH Ich möchte mich nicht so sehr mit PATH anlegen, also gehen wir eine Umgebungsvariable namens JAVA_HOME durch (ich denke, das ist üblich). Sie können den Effekt minimieren, indem Sie nur JAVA_HOME im PATH registrieren und beim Ändern der Java-Version nur JAVA_HOME neu schreiben. Und da ich mich nicht zu sehr mit Umgebungsvariablen herumschlagen möchte, ist das Ziel, auf das JAVA_HOME zeigt, auch das Verzeichnis symbolischer Links (es scheint, dass es viele neueste und defalt gibt). PATH =% JAVA_HOME% \ bin; (weggelassen) JAVA_HOME="C:\Program Files\Java\latest" image.png In der nachfolgenden Installation wird hier nur die Richtung der symbolischen Verknüpfung geändert. Wenn etwas nicht funktioniert, ist es in Ordnung, diese Richtung umzukehren.
  5. Versionsprüfung Geben Sie java -version ein. In dieser Version sollte das Wort AdoptOpenJdk angezeigt werden. image.png

Java8 Zuerst aus Java 8. Als Voraussetzung ist das ursprüngliche Java 8, daher sollte es ohne Probleme funktionieren.

Obwohl es auf die UNIX-Umgebung beschränkt ist, kann leicht vergessen werden, den Einstellungswert von securerandom.source zu ändern. Notieren Sie ihn daher hier. Die anfängliche Einstellung für die Zufallszahlengenerierung ist "/ dev / random", muss aber nicht so streng sein, und die Verzögerung aufgrund der Erschöpfung von Zufallszahlen ist problematischer. Deshalb habe ich die Einstellung auf "/ dev / urandom" geändert. Ich denke, es gibt viele Umgebungen. In einer solchen Umgebung müssen Sie daran denken, die Einstellungen nach der Installation des Adopt Open JDK sowie die vorhandenen Einstellungen zu ändern. Vergessen Sie nicht, die Einstellungen für ** jede Version ** zu ändern. Weitere Informationen zum Ändern von Einstellungen finden Sie hier: http://otndnld.oracle.co.jp/document/products/E13153_01/wlcp/wlss40/configwlss/jvmrand.html

Java9 Onimon verursacht eine Reihe von Problemen aufgrund von Konfigurationsänderungen mit der Modulfunktion "Project Jigsaw". Als Referenz bin ich ein wenig gestolpert. Das von Oracle herausgegebene Java 9-Migrationshandbuch ist ein Muss.

--Gradle funktioniert nicht

Ältere Gradles geben den Fehler "Java-Version konnte nicht ermittelt werden von" aus. https://qiita.com/Kaoru_Yamamoto/items/dcb3815795d6e752cff3

Einige der internen APIs von Java, die nicht von außen verwendet werden sollten, konnten bis zu Java 8 verwendet werden, sind jedoch jetzt eingeschränkt. Einschränkungen bedeuten, dass sie nicht mehr verfügbar sind oder Sie eine WARN-Warnung erhalten. [Gegenmaßnahme ①] (Grundlegende Unterstützung) Schreiben Sie die Quelle in eine alternative API um. [Gegenmaßnahme ②] (Temporäre Unterstützung) Fügen Sie die Java-Startoption "--add-exports (entsprechende API)" hinzu. [Gegenmaßnahme ③] (Temporäre Unterstützung) Fügen Sie die Java-Startoption "--add-opens (entsprechende API)" hinzu. Dies ist eine Option, wenn Sie die API mit Reflection betreiben.

Die vorläufige Unterstützung ist eine Übergangsmaßnahme und möglicherweise in zukünftigen Versionen nicht verfügbar. Daher müssen grundlegende Maßnahmen so bald wie möglich ergriffen werden.

https://blog.codefx.org/java/java-9-migration-guide/#Illegal-Access-To-Internal-APIs

Recommended Posts

So wechseln Sie von Oracle Java 8 zu Adopt Open JDK 9
[Java] So wechseln Sie von Open JDK zu Oracle JDK
Wie man mit cli jdk etc. von oracle bekommt
So übergeben Sie Oracle Java Silver
So wechseln Sie von HTML zu Haml
[Talend] Wechsel von Oracle JDK zu Open JDK
Java: So senden Sie Werte von Servlet zu Servlet
So laden Sie Oracle JDK 8 U / min mit Curl herunter
So erhalten Sie eine Klasse von Element in Java
Wie installiere ich Oracle JDK 1.8 in Ubuntu 18.04 LTS?
Änderungen von Java 8 zu Java 11
Summe von Java_1 bis 100
Von Java zu Ruby !!
[Android Studio] So ändern Sie TextView in eine beliebige Schriftart [Java]
So springen Sie von Eclipse Java zu einer SQL-Datei
Wie schreibe ich Scala aus der Perspektive von Java
Verwendung von Oracle JDK 9 EA mit Travis CI
[Java] So extrahieren Sie den Dateinamen aus dem Pfad
[Java] So löschen Sie ein bestimmtes Zeichen aus einer Zeichenfolge
[Anfänger] Verwendung des Geräts Ändern Sie die Einstellungen ab Einführung
So senken Sie die Java-Version
Migration von Cobol nach JAVA
[Java] Verwendung von Map
So deinstallieren Sie Java 8 (Mac)
Java - So erstellen Sie JTable
Verwendung von Java Optional
Neue Funktionen von Java7 bis Java8
So minimieren Sie Java-Images
Wie schreibe ich einen Java-Kommentar
Stellen Sie eine Verbindung von Java zu PostgreSQL her
[Java] Verwendung von removeAll ()
Verwendung von Java Map
So legen Sie Java-Konstanten fest
Verwendung von Java-Variablen
So konvertieren Sie Java Base
[Java] So implementieren Sie Multithreading
Wechseln Sie von SQLite3 zu PostgreSQL
So installieren Sie JDK8-10 (Mac)
Von ineffektivem Java zu effektivem Java
So initialisieren Sie ein Java-Array
Speichern von Zeichenfolgen von ArrayList zu Zeichenfolge in Java (Personal)
Schreiben und Notizen bei der Migration von VB zu JAVA
Dynamisches Wechseln von JDKs beim Erstellen von Java mit Gradle
So lernen Sie Java Silver SE 8
Verwendung von HttpClient (Get) von Java
Java # 6 studieren (Wie man Blöcke schreibt)
So erstellen Sie einen Java-Container
So zerlegen Sie eine Java-Klassendatei
Verwendung von HttpClient (Post) von Java
Java Open JDK 8 unter CentOS 7 installieren
Wie man JAVA in 7 Tagen lernt
Android: Umgang mit "Java-Version von '10 .0.1 'konnte nicht ermittelt werden"
So ändern Sie den kube-proxy in den ipvs-Modus.