it-swarm.com.de

So verwenden Sie jdk ohne jre in Java 11

Wir planen, unser Java 8-Projekt zu migrieren, um Java 11 zu verwenden. Ich habe jedoch festgestellt, dass Java 11 keinen JRE-Ordner hat. 

In Java 9 und Java 10 werden Ordnerstrukturen geändert, d. H. Java\jdk1.x oder Java\jre1.x, wobei x Java 9 oder 10 ist.

In Java 11 bekomme ich jedoch nur einen Ordner, d. H. Java\jdk-11. Wie wird mein Kunde meine Bewerbung ohne jre nutzen?

Was ich verstanden habe, ist, dass Java 11 die Modularisierung unserer Anwendung erzwingt, und es ist die Verwendung von jlink erforderlich, um ein eigenes Jre zu erstellen, um die Anwendung im Client auszuführen.

Ist mein Verständnis richtig?

32
Maha Lak

Seit 20 Jahren wurde das JDK mit einer JRE ausgeliefert, die nur einen Teil ihrer Funktionalität in einem anderen Verzeichnis Ihres Systems installierte.

Tatsächlich wurde es mit ZWEI identischen JREs ausgeliefert, von denen eine im JDK-Installationsverzeichnis und eine außerhalb davon installiert war.

Dies hat mich immer verwirrt, da es eine komplette Verschwendung von Anstrengungen seitens der Betreuer ist, dies zu tun, und eine komplette Verschwendung von Speicherplatz auf dem Computer, auf dem Sie den Computer installieren, da diese JRE nur einige der Funktionen des JDK dupliziert mach schon.

Mit Java 11 beschlossen Oracle und das OpenJDK-Team, diese Dummheit zu beenden und nur eine einzige Sache zu verteilen, das JDK .. _. Dieses JDK ist, wenn es installiert ist, tatsächlich auf Ihrer Festplatte kleiner als die alte JRE, die es früher war Sogar das etwas gültige Argument, dass Sie eine separate JRE für Geräte mit begrenztem Festplattenspeicherplatz wünschen, ein Argument, das nie erklärt hat, warum 2 JREs mit einem einzigen JDK installiert wurden, sollte aber als JRE rechtfertigt werden eine reduzierte Laufzeitumgebung für das JDK.

Ergo, es ist keine separate JRE erforderlich, und seit langem gibt es keine mehr, geschweige denn, sie als Teil der JDK-Installation einzubeziehen und zwangsweise zu installieren.

Und nein, Sie müssen keine eigene JRE erstellen. Installieren Sie einfach das OpenJDK auf den Client-Computern und stellen Sie sicher, dass Sie $ Java_HOME/bin zum Systempfad hinzufügen, genau wie Sie es bei alten JREs getan haben.

Und ach, entfernen Sie die Windows-Verzeichnisstruktur aller Java * .exe-Dateien, die einige Versionen des alten JRE-Installationsprogramms dort ablegen wollten, sowie den Systempfad, in dem einige seltsame Einträge von einigen JRE-Installationsprogrammen hinzugefügt wurden.

40
jwenting

Besuchen Sie die Website des AdoptOpenJDK-Projekts, um die neuesten JRE- und JDK-Dateien herunterzuladen https://github.com/AdoptOpenJDK/openjdk-jdk11 .

Ich habe ihre Night-Builds verwendet, um das Problem des Fehlens von JRE im JDK-Paket https://adoptopenjdk.net/releases.html?variant=openjdk11#x64_linux zu umgehen.

Entpacke JRE einfach in den JDK-Ordner und das wird es sein.

enter image description here

3
matson kepson

tl; dr

Wie wird mein Kunde meine Bewerbung ohne jre nutzen?

➥ Bündeln Sie eine Java-Implementierung in Ihre Java-basierte App. 

Lernen:

Einzelheiten

Was ich verstanden habe, ist, dass Java 11 die Anwendung modularisiert

Nein, Modularisierung ist streng genommen nicht erforderlich. Die meisten vorhandenen Apps können in Java 11 unverändert ausgeführt werden. Sie können die Entwicklung in Java 11 fortsetzen, ohne Ihren Code zu modifizieren. In Ihrem Fall für einen GUI-Desktop oder eine mobile App müssen Sie jedoch eine JVM in Ihre App packen. Das Modifizieren und Verwenden von jlink Werkzeugen ist wahrscheinlich der beste Weg, um dies zu erreichen. Im Gegensatz dazu muss eine serverseitige Servlet-basierte App oder ein Microservices-Server noch nicht modularisiert werden, obwohl dies möglicherweise eine gute Idee ist.

Ich habe bemerkt, dass Java 11 keinen JRE-Ordner hat.

Oracle beabsichtigt nicht mehr, dass Endbenutzer eine JRE oder ein JDK installieren. Java-Applets in einem Browser und Java Web Start Die Bereitstellung von Apps wird eingestellt, sodass der Endbenutzer keine JRE mehr benötigt. Von Java-basierten Apps wird erwartet, dass sie ihre eigene Java-Implementierung bündeln. Die einzigen, die bewusst ein JDK installieren, sind Entwickler und serverseitige Sysadmins.

Wichtig:

Hier ist ein Flussdiagramm, das Ihnen helfen kann, bei den verschiedenen Anbietern, die eine Java 11-Implementierung anbieten, zu suchen und zu entscheiden.

 Flowchart diagram to aid in finding and choosing an implementation of Java 11 from various vendors.

2
Basil Bourque