Aktuelles

JDK/JRE - Open, Oracle, Microsoft... was denn nun?

Brathorun

Profi
Thread Starter
Mitglied seit
17.12.2020
Beiträge
32
Servus,
ich bin komplett verwirrt. Ich hab das Windows Terminal für mich entdeckt und es ist großartig, das man hiermit scheinbar (die Erfahrungswerte sind noch wirklich dünn - erst recht im Bezug auf Updates) die ganzen Programme bequem administrieren kann.

Okay, es ist so, das einige Programme Java voraussetzen. Aktuell bin ich noch mit C# beschäftigt aber man kann ja etwas vorweg-installieren... nun gibt es wohl eine Entwicklerumbebung JDK und eine bloße Laufzeitumgebung JRE. Scheinbar beinhaltet die Entwicklerumbebung auch die Laufzeitumgebung. Macht natürlich absolut Sinn.

Bzw. was beinhalten die Installer?

Auf Linux: was installiert man hier? Hier nennen sich (unter Debian) die jeweiligen Pakete default-jre und default-jdk.

Unter Windows: hier gibt es auf einmal eine Version von Oracle, Microsoft und es gibt eine Open-Source Version (also eine Version, die noch offener ist als Version XY?).

Beinhaltet die JDK-Installation auch immer Automatisch die JRE?
Wie ist es unter Windows? Wie unter Linux?
Welche Version ist die Aktuellste? Welche Version ist zu Bevorzugen?

Aufs gerade wohl hab ich die OpenJDK version von Microsoft installiert. Damit hab ich gedacht, alles abgehandelt zu haben. Ich kann auch Java Programme in der Konsole ausführen. Leider funktioniert ein Programm nicht. Beim öffnen beschwert sich dieses, das Java 1.5 vorausgesetzt werden würde. Was passt hier nicht?
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.

YCbCr

Profi
Mitglied seit
30.11.2020
Beiträge
32
Auf Linux: was installiert man hier? Hier nennen sich (unter Debian) die jeweiligen Pakete default-jre und default-jdk.
Die Pakete selbst installieren erst mal gar nichts (bzw. je eine leere Datei), siehe https://packages.debian.org/bullseye/amd64/default-jre/filelist und https://packages.debian.org/bullseye/amd64/default-jdk/filelist. Sie haben aber als (indirekte) Abhängigkeiten java-common, das die allgemeine Infrastruktur zum verwalten mehrerer Java Laufzeitumgebungen und JDKs unter Debian bereitstellt, sowie die entsprechenden Bestandteile von Debians OpenJDK Distribution: openjdk-11-jre, openjdk-11-jre-headless und openjdk-11-jdk. Das JDK Paket enthält dabei nicht die Runtime, hat aber das JRE Paket als Abhängigkeit. Oracles JDK ist auch für Debian verfügbar, aber nicht in den Standard-Paketquellen enthalten. Microsoft bieten für Debian eine Paketquelle an, die auch ihren OpenJDK Build enthält, siehe https://docs.microsoft.com/en-us/java/openjdk/install#install-on-debian.
Unter Windows: hier gibt es auf einmal eine Version von Oracle, Microsoft und es gibt eine Open-Source Version (also eine Version, die noch offener ist als Version XY?).

Beinhaltet die JDK-Installation auch immer Automatisch die JRE?
Sowohl Oracle, als auch Microsoft bieten afaik (für aktuelle Versionen) nur JDKs für Windows an, die dann auch jeweils die Runtime enthalten.
Welche Version ist die Aktuellste? Welche Version ist zu Bevorzugen?

[…] Leider funktioniert ein Programm nicht. Beim öffnen beschwert sich dieses, das Java 1.5 vorausgesetzt werden würde. Was passt hier nicht?
Die aktuelle Java SE Version ist 17, das ist auch gleich eine LTS Version. Weitere aktuell noch unterstützte LTS Versionen sind 11 und 8. 7 hat auch noch bis 2022 extended Support durch Oracle.

Das mit dem bevorzugen ist so eine Sache: Java SE Runtimes sind im allgemeinen nicht uneingeschränkt abwärtskompatibel (Siehe z.B. Oracles Compatibility Guide for JDK 8). Das bedeutet, die "richtige" Version ist im Zweifel die, mit der die Auszuführende Software kompatibel ist. Von welchem Anbieter die Runtime stammt ist weniger relevant, wobei manche Software offiziell nur bestimmte JREs supported.

Womit wir schon bei deinem Problem wären: Java 5.0 (das Versionsschema hat sich nach 1.4 geändert, aber intern wurde noch 1.5 verwendet) ist von 2004 und der Support wurde 2009 eingestellt (bezahlter Extended Support 2015). Eine kompatible Runtime auf einem modernen System zum Laufen zu kriegen könnte schwierig werden. Am besten solltest du dich nach einer neueren Version oder Alternative umsehen. Falls der Quellcode verfügbar ist, kann man das ganze möglicherweise auch mit einigen Anpassungen in Java 17 (oder wenigstens 8) gangbar machen.

Zusammengefasst ist es ein ziemlicher Krampf mit diesen Java Runtimes. Heutzutage bringt Java Software deshalb oft ihre eigene mit. Speziell seit mit Java 9 die Möglichkeit geschaffen wurde, modulare, auf die Anforderungen des Programms zurechtgestutzte Runtimes zu erzeugen.
 
Oben Unten