Sie wissen es vielleicht nicht, aber Java gibt es in vielen Geschmacksrichtungen und Teilen. Nachdem Oracle Sun Microsystems übernommen hatte, wurde das Unternehmen zum offiziellen Eigentümer der Java-Marke und der wichtigsten "offiziellen" Java-Distributionen.
Zunächst einmal ein Haftungsausschluss: Ich bin weder Anwalt noch Java-Entwickler. Dies ist ein Überblick über eine Reihe komplexer Themen im Zusammenhang mit Java, Java-Entwicklung und Lizenzierung. Mein Ziel ist es, Ihnen genügend Informationen zu geben, um voranzukommen und erfolgreich zu sein, aber ich möchte Sie ermutigen, weitere Nachforschungen anzustellen und einen Anwalt zu konsultieren, wenn Sie zusätzliche Informationen benötigen. Ich weiß, dass ich Details auslassen und wichtige Punkte beschönigen werde.
Java besteht aus den folgenden Teilen
- JVM: Die virtuelle Java-Maschine ist die virtuelle Maschine, auf der alle Java-Applets ausgeführt werden. Java-Applets werden normalerweise als Java-Bytecode in einer JAR-Datei verteilt. Java-Bytecode wird nicht nativ auf dem physischen Computer ausgeführt. Stattdessen wird er auf der JVM ausgeführt. Die JVM ist ein Just-in-Time-Compiler (JIT), der den Java-Bytecode in nativen Maschinencode umwandelt.
- Die beiden beliebtesten JVM-Varianten sind Hotspot (die offizielle JVM, die vom Oracle JDK verwendet wird) und OpenJ9.
- Technisch gesehen verfügt Android nicht über eine JVM. Stattdessen wird der Java-Bytecode in Dalvik-Bytecode umgewandelt und auf der DVM (Dalvik Virtual Machine) ausgeführt oder von ART (Android Runtime) kompiliert. Beide verwenden .dex-Dateien, aber ART übersetzt den Bytecode in .elf-Dateien (Executable and Linkable Format). Dieser Artikel konzentriert sich hauptsächlich auf die Java-Desktop-Seite für die Erstellung von Android-Apps mit Delphi, aber ich wollte dies der Klarheit halber anfügen.
- JRE: Die Java-Laufzeitumgebung enthält die wichtigsten Bibliotheken, die ein Java-Applet zur Ausführung benötigt, sowie die JVM. Sie enthält Java.exe und Javaw.exe, die die Applets und andere Dienstprogramme ausführen.
- JDK: Das Java-Entwicklungskitoder das SDK für die Java-Entwicklung. Das JDK ist eine Obermenge der JRE. Es wird für die Erstellung von Java- (und Android-) Anwendungen verwendet und bietet außerdem alles, was Sie zum Ausführen von Java-Applets benötigen. Es enthält eine Reihe von Dienstprogrammen wie KeyTool.exe und JarSigner.exe, mit denen Sie
- Es gibt 3 Varianten der Java-Plattform von Oracle: Standard Edition (Java SE), Enterprise Edition (Java EE) und Micro Edition (Java ME). Dieser Blogbeitrag und die meisten Anwendungsfälle, denen Sie begegnen werden, betreffen die Standard Edition.
Interessant wird es bei der OpenJDK, eine freie und quelloffene Implementierung der Java Standard Edition (SE) Plattform. Es ist die offizielle Referenz Implementierung von Java SE seit Version 7. Die Quellimplementierung steht unter der GNU General Public License Version 2 mit einer Linking-Ausnahme. [wikipedia] Ähnlich wie Chrome auf dem Open-Source-Projekt Chromium basiert, basiert Java SE auf OpenJDK.
Jeder, auch Sie, könnte die OpenJDK-Quelldateien herunterladen und ein Binär-Build erstellen. Es gibt eine Reihe von Organisationen, die dies tun, und jede hat ihre eigenen Vorstellungen von Lizenzierung, Support und enthaltenen Komponenten. Hier sind einige davon (es handelt sich um Binärdistributionen des OpenJDK-Quellcodes).
Bauen Sie |
Langfristig Support |
Freizügig Lizenz |
Reines |
Kommerziell Support |
| AdoptOpenJDK / JClarity / IBM Java SDK |
Ja | Ja | Optional | Ja |
| Alibaba Drachenbrunnen | Ja | Ja | Nein | Ja |
| Amazonas Corretto | Ja | Ja | Nein | Nein |
| Azul Zulu | Ja | Ja | Nein | Ja |
| BellSoft Liberica JDK | Ja | Ja | Nein | Ja |
| ojdkbuild | Ja | Ja | Ja | Nein |
| Oracle Java SE | Ja | Nein | Nein | Ja |
| Oracle OpenJDK | Nein | Ja | Ja | Nein |
| Red Hat OpenJDK | Ja | Ja | Ja | Nein |
| Red Hat für Windows | Ja | Ja | Nein | Ja |
| SAP SapMachine | Ja | Ja | Nein | Nein |
| Quelle: https://en.wikipedia.org/wiki/OpenJDK | ||||
Oracle bietet direkte OpenJDK-Builds an, aber diese Builds direkt von Oracle enthalten keinen langfristigen Support oder kommerziellen Support. Dafür möchte Oracle, dass Sie zu Oracle SE wechseln, das keine freizügige Lizenz hat (Oracle hat kürzlich die Lizenzierung seines Standard Edition JDK geändert und verlangt nun eine jährliche Gebühr für die kommerzielle Nutzung). Während der OpenJDK-Quellcode also eine freizügige Lizenz hat, hat die Binärdistribution von Oracle nicht dieselbe Lizenz.
An dieser Stelle kommt AdoptOpenJDK (und andere) ins Spiel. Sie nehmen die Open-Source-Quelldateien von OpenJDK und bieten eine Binärdistribution mit langfristigem Support (Updates und Korrekturen für alte Versionen), einer freizügigen Lizenz und kommerziellem Support. AdoptOpenJDK wird von der Community und einer Reihe von Partnern gepflegt und unterstützt. Großunternehmen darunter IBM, GoDaddy, Microsoft und Red Hat.
RAD Studio ist nicht direkt von Java abhängig, aber wenn Sie das Android SDK verwenden, um auf Android zu zielen, dann verwenden Sie es auch. Das aktuelle RAD Studio-Installationsprogramm bietet Ihnen die Möglichkeit, das standardmäßige Oracle JDK zu installieren, wenn Sie es nicht bereits installiert haben. Für die Zukunft (ca. Zeitrahmen 10.4.x) plant Embarcadero, die Standardoption zur Installation von AdoptOpenJDK zu ändern.
Die Entscheidung, welches JDK und welche JRE Sie verwenden möchten, liegt bei Ihnen. In diesem Blog-Beitrag werde ich Sie durch die Umstellung auf das AdoptOpenJDK mit HotSpot JRE (HotSpot ist die offizielle JVM, die vom Oracle JDK verwendet wird, aber es gibt auch andere, aus denen Sie wählen können).
Bevor Sie beginnen
Wenn Sie das JRE oder JDK von Oracle bereits installiert haben, sollten Sie es deinstallieren. Es sei denn, Sie haben andere Software auf Ihrem Computer, die speziell davon abhängt. Wenn Sie es nur für die Android-Entwicklung mit Delphi installiert haben, können Sie es problemlos deinstallieren. Aufgrund der Art und Weise, wie es aktualisiert wird, könnten Sie feststellen, dass Sie mehrere Versionen installiert haben.
Installation
Besuchen Sie https://adoptopenjdk.net/ und wenn Sie mit einem Windows-Computer arbeiten, sollte der gewünschte Download automatisch ausgewählt werden. Ja, wir wollen Version 8, auch wenn es neue Versionen gibt. Version 8 ist die beliebteste Version für die meisten Anwendungsfälle, auch für die Android-Entwicklung, und die verschiedenen Versionen sind nicht kompatibel.

Wenn Sie mit einer 32-Bit-Version von Windows arbeiten, müssen Sie unbedingt auf eine 64-Bit-Plattform umsteigen. Tun Sie das und kommen Sie zurück, wenn Sie fertig sind. Sie brauchen die 32-Bit-Version nicht auf einem 64-Bit-Windows zu installieren. Wenn Sie die Website jedoch von einem anderen Computer aus besuchen, können Sie auf der Seite andere Plattformen/Veröffentlichungen Seite und finden Sie dort den benötigten Download. Für Windows x64 benötigen Sie das vollständige JDK (einschließlich der JRE), nicht nur die JRE.

Während der Installation werden Sie die GNU GENERAL PUBLIC LICENSE. Dies gilt nur für das JDK und hat keine Auswirkungen auf die Projekte, die Sie entwickeln (sprechen Sie mit einem Anwalt oder lesen Sie die Lizenzen, um sicherzugehen). Ich lasse das Installationsprogramm gerne die Umgebungsvariable JAVA_HOME setzen, aber das ist optional. Ansonsten können Sie die Standardeinstellungen verwenden.

Jetzt müssen Sie nur noch die Einstellungen in Ihrem Delphi / RAD Studio IDE aktualisieren. Gehen Sie zu Tools → Optionen → Bereitstellung → SDK Manager und wählen Sie dann eines Ihrer Android SDKs (32 oder 64-Bit) aus und wechseln Sie zur Registerkarte Java, wo Sie etwas wie das folgende Bild sehen sollten.

Wenn Sie Ihr Oracle Java SE JDK installiert gelassen haben, wird das gelbe Dreieck nicht angezeigt, da das alte JDK noch vorhanden ist. Ändern Sie dann den Pfad, in den Sie AdoptOpenJDK installiert haben, mit der ellipsenförmigen Schaltfläche Durchsuchen. Stellen Sie sicher, dass Sie alle Ihre Android SDK-Einträge ändern.

Von diesem Zeitpunkt an sollten Sie keine Änderungen mehr feststellen. Es funktioniert einfach. Sowohl das Oracle SE JDK als auch AdoptOpenJDK basieren auf demselben Quellcode - die Funktionalität ist dieselbe.
Alternative Installation
Meine bevorzugte Methode zur Installation und Aktualisierung des AdoptOpenJDK ist die Verwendung des Schokoladig
Windows-Paketmanager.
- Öffnen Sie ein PowerShell-Fenster mit administrativen Rechten
- Führen Sie das Folgende aus, um installieren Chocolatey
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) - Dann AdoptOpenJDK 8 installieren
choco install adoptopenjdk8 - Und wenn Sie in Zukunft aktualisieren möchten, führen Sie einfach den folgenden Befehl von einer erweiterten Eingabeaufforderung aus
choco update adoptopenjdk8
Ich bin ein großer Fan des Chocolaty-Paketmanagers (ich habe ein Pro-Abonnement). Wenn Sie sich das Programm ansehen, werden Sie es sicher sehr nützlich finden.

