Hallo zusammen,
Vorneweg: Ich bin selbst kein Java-Entwickler (so wirklich gar nicht!) bin bei uns im Unternehmen neuerdings aber für die Bereitstellung der Java Runtime Environment für die Clientsysteme verantwortlich.
Bisher war auf sämtlichen Clients nur die Java 8 Runtime Environment in 32bit + 64bit (von Oracle) parallel installiert.
Jetzt gab es zuletzt Anfragen das für diverse Anwendungen auch neuere Java Versionen benötigt werden.
Der Plan war jetzt eigentlich weiterhin Java 8 in 32 und 64 bit auf den Clients zu verteilen - da nach wie vor für diverse Anwendungen benötigt - und zusätzlich eine Java 11 JRE dazu zu packen, welche über << jlink.exe --add-modules ALL-MODULE-PATH >> extrahiert wurde.
Dazu entsprechende JAVA_HOME Variablen gesetzt (für alle 3 JREs) und auf eine davon über die PATH-Variable verlinkt.
In ersten Tests hat das soweit auch funktioniert und eine TEST.jar Datei kann mit der entsprechenden Variable vorneweg aufgerufen werden!
Wie es dann so ist, kamen prompt neue Anforderungen, dass nicht mehr nur 11 sondern ggf. auch 17 und/oder 21 benötigt werden.
Jetzt stellen sich mir hier gerade in paar Grundsatzfragen wie man denn da am besten mit umgeht.
Der Ursprungsgedanke war ja der, dass wir zentral auf allen Clients die benötigten JREs im vollen Umfang zur Verfügung stellen, damit nicht jede Anwendung eine eigene JRE mitbringen muss.
Bis Java 8 war das nach meinem Verständnis nach ja auch so noch das Standardvorgehen.
Ab Java 11 gibt es dann ja die Module, damit (wenn ich es richtig verstanden habe) die einzelnen Applikationen ihre eigene JRE in reduziertem Umfang mitbringen können.
Macht es also überhaupt Sinn das Java >= 8 noch zentral zur Verfügung zu stellen? Wir bräuchten dann im ungünstigsten Fall ja ggf. (ein) Paket(e) für 8 + 11 + 17 + 21 um alles abzudecken, da wir nie wissen welche Applikation welche Version gerade braucht.
Funktioniert das technisch überhaupt noch, dass sich mehrere Applikationen die gleiche JRE "teilen" (mit allen Modulen breitgestellt)?
Rein von der Logik wäre es ja schon sinnvoll zentral etwas bereit zu stellen, anstatt das 50 Anwendungen jeweils 50 eigene JREs mitbringen.
Blöd nur, wenn theoretisch z.B. nur 1 davon Java 11 in minimalem Umfang braucht und die anderen alle 8 und 17 oder so.
Wie seht ihr die Pro- und Contra Punkte bei dem geplanten Vorgehen - oder habe ich technisch ggf. etwas übersehen was noch beachtet werden muss?
Danke für eure Meinungen!
Gruß Basti
Vorneweg: Ich bin selbst kein Java-Entwickler (so wirklich gar nicht!) bin bei uns im Unternehmen neuerdings aber für die Bereitstellung der Java Runtime Environment für die Clientsysteme verantwortlich.
Bisher war auf sämtlichen Clients nur die Java 8 Runtime Environment in 32bit + 64bit (von Oracle) parallel installiert.
Jetzt gab es zuletzt Anfragen das für diverse Anwendungen auch neuere Java Versionen benötigt werden.
Der Plan war jetzt eigentlich weiterhin Java 8 in 32 und 64 bit auf den Clients zu verteilen - da nach wie vor für diverse Anwendungen benötigt - und zusätzlich eine Java 11 JRE dazu zu packen, welche über << jlink.exe --add-modules ALL-MODULE-PATH >> extrahiert wurde.
Dazu entsprechende JAVA_HOME Variablen gesetzt (für alle 3 JREs) und auf eine davon über die PATH-Variable verlinkt.
In ersten Tests hat das soweit auch funktioniert und eine TEST.jar Datei kann mit der entsprechenden Variable vorneweg aufgerufen werden!
Wie es dann so ist, kamen prompt neue Anforderungen, dass nicht mehr nur 11 sondern ggf. auch 17 und/oder 21 benötigt werden.
Jetzt stellen sich mir hier gerade in paar Grundsatzfragen wie man denn da am besten mit umgeht.
Der Ursprungsgedanke war ja der, dass wir zentral auf allen Clients die benötigten JREs im vollen Umfang zur Verfügung stellen, damit nicht jede Anwendung eine eigene JRE mitbringen muss.
Bis Java 8 war das nach meinem Verständnis nach ja auch so noch das Standardvorgehen.
Ab Java 11 gibt es dann ja die Module, damit (wenn ich es richtig verstanden habe) die einzelnen Applikationen ihre eigene JRE in reduziertem Umfang mitbringen können.
Macht es also überhaupt Sinn das Java >= 8 noch zentral zur Verfügung zu stellen? Wir bräuchten dann im ungünstigsten Fall ja ggf. (ein) Paket(e) für 8 + 11 + 17 + 21 um alles abzudecken, da wir nie wissen welche Applikation welche Version gerade braucht.
Funktioniert das technisch überhaupt noch, dass sich mehrere Applikationen die gleiche JRE "teilen" (mit allen Modulen breitgestellt)?
Rein von der Logik wäre es ja schon sinnvoll zentral etwas bereit zu stellen, anstatt das 50 Anwendungen jeweils 50 eigene JREs mitbringen.
Blöd nur, wenn theoretisch z.B. nur 1 davon Java 11 in minimalem Umfang braucht und die anderen alle 8 und 17 oder so.
Wie seht ihr die Pro- und Contra Punkte bei dem geplanten Vorgehen - oder habe ich technisch ggf. etwas übersehen was noch beachtet werden muss?
Danke für eure Meinungen!
Gruß Basti