Also generell erst einmal ein paar allgemeine Informationen:
a) Natürlich kann man mehrere Versionen von Java parallel installiert haben. Das ist etwas, das sogar bei sehr vielen Entwicklern der Fall ist, weil man z,B. eine neue Version nur etwas testen will oder man hat eine Applikation, die noch ein altes JDK benötigt. Also das ist etwas, das vollkommen "normal" und unproblematisch ist.
b) Paar kurze Erläuterungen bezüglich Java (und dem "reinen Java"
):
Bei Java wird unterschieden in JDK (Java Development Kit) und JRE (Java Runtime Environment). Das erste enthält wirklich alles, also Compiler, Java VM, ... und das JRE ist nur das, was man zum Ausführen von bestehenden Applikationen braucht. Das JDK enthält also auch das JRE.
Oracle hat früher separate JREs zum Download angeboten. Nach Java 8 wurde aber einiges formelle geändert und es wird kein JRE für 9 und später angeboten (zumindest nicht als freien Download). Das ist aber unkritisch, denn man kann einfach ein JDK installieren.
c) Auf Grund der geänderten Lizenzbedingungen würde ich aber prinzipiell dazu raten, das man einfach ein Anbieter von OpenJDKs nutzt. Hintergrund sind die Lizenzbedingungen von Oracle für seine JDKs. Es ist nicht so, dass man das nicht mehr frei nutzen kann aber es gibt Einschränkungen und ich sehe nicht ein, komplexe Lizenzbedingungen zu studieren und irgendwelche Probleme zu haben wenn ich gewisse Dinge machen möchte... (z.B. Java auch mal mit dem eigenen Produkt weiter geben oder so). Daher ist meine Empfehlung Adoptopenjdk oder Zulu Community.
d) Java-Version in der Console / Terminal:
Wenn ein JDK richtig installiert wurde, dann registriert sich das Java so, dass die Installation mit java_home angezeigt werden kann. Dieses Tool findet sich unter /usr/libexec.
Ein Aufruf von
/usr/libexec/java_home
zeigt die aktive Java Version an.
Ein Aufruf von
/usr/libexec/java_home -v
zeigt alle bekannten Java Versionen an.
Ein Aufruf von
/usr/libexec/java_home -v <version>
zeigt den Installationsort der Java Version <version> an.
Welches java genutzt wird, wird durch die Umgebungsvariable JAVA_HOME festgelegt. Du kannst in der Konsole das jederzeit umsetzen per:
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
export JAVA_HOME=`/usr/libexec/java_home -v 11`
export JAVA_HOME=`/usr/libexec/java_home -v 14`
...
(Bitte die Backticks beachten. Alternativ zu `...`wäre auch $(...) denkbar meine ich. Ich nutze aber immer die Backticks, daher bin ich da jetzt nicht ganz so sicher mit den Alternativen. Die Backticks gehen halt mit allen Shells und das andere ist meines Wissens nicht auf allen Shells gleich verfügbar - und ich nutze halt auch tcsh und so)
Damit Du eine klare default Java Einstellung hast, kannst Du dies in der Konfiguration des Shell einstellen. Das ist je nahc verwendeter Shell üblicherweise .bash_profile oder .zshrc (Ab 10.15 ist die zsh wohl Standard, davor war es die bash).
e) Es gibt teilweise auch noch Tools für das Umschalten der Java Versionen. jenv, das z.B, über HomeBrew installiert werden kann, fällt mir da auf Anhieb ein. Das ist aber nicht notwendig. Man kann sich ja einfach Aliase machen, wie z.B. auch unter
https://stackoverflow.com/questions...r-change-the-default-java-jdk-version-on-os-x zu finden ist.
Daher ist sowas aus meiner Sicht unnötig.
f) Nun kommen wir zum interessanten Aspekt: Öffnen von jar Dateien aus dem Finder heraus.
Hier habe ich die Erfahrung gemacht, dass eigentlich immer die zuletzt installierte JDK Version genutzt wurde. Ich selbst habe das aber so gut wie nie genutzt. Wenn ich eine jar Datei hatte, dann habe ich mir eigentlich immer ein kleines Script gebaut, welches dann die Applikation gestartet hat. In dem Script konnte ich dann die Version immer vorab auswählen und so sicher stellen, dass jede Applikation genau mit der Java Version gestartet wurde, die die Applikation braucht. Eine Installation eines JDKs ist sonst immer mit der Gefahr verbunden, dass dieses Starten nicht mehr funktioniert für alle Applikationen und das ist etwas, das einfach unschön ist.
Und natürlich kannst Du immer aus dem jar eine app machen. Dazu gibt es diverse freie Tools oder wenn man das Format kennt, dann kann man das auch so basteln. Oracle hat den appbuilder mit drin im jdk meine ich (ich nutzte aber kein Oracle jdk als meine Macs noch mit mac os liefen), aber es gibt viele andere Tools:
Sveinbjörn's personal website. Also some open source software stuff.
sveinbjorn.org
https://github.com/libgdx/packr (Der bündelt ein JDK / JRE mit.)
http://launch4j.sourceforge.net/ (Evtl. outdated?)
...
Das wäre so die Übersicht, die ich Dir geben kann.
Was für Vorgehen würde ich empfehlen:
- Falls Du ein 8er JRE installiert haben solltest: Das würde ich entfernen.
- Apple Java: Alte Apple Java Versionen sind schlicht: Alt. --> So Du keine Software hast, die das explizit brauchen würde ich hier auch die Deinstallation empfehlen. (Was waren da die Versionen? Das ging bis 1.6 oder 1.7? Einfach Asbach aber das scheint bei Dir zumindest nichts zu sein, das sch die den Vordergrund drängt.
- Einfach das JDK, das Du nutzen willst, (noch einmal) installieren. Das sollte es zum "aktiven" java machen. Geht evtl auch "einfacher", aber das habe ich so nicht parat.
- Meine Empfehlung: Generell nicht jar einfach per Doppelclick starten. Bau ein Startscript oder eine app daraus. (aber zeigt evtl., dass hier jemand schreibt, der viel mit Unix Systemen unterwegs ist und sich da auch Zuhause fühlt
So Empfehlungen ist nicht immer zu folgen, denn spätestens wenn es um die Frage nach einem Editor gehen sollte wird meine Empfehlung zu vi & co nicht mehr so Nutzer-freundlich sein
)
<Meine Meinung> Und wenn es um ein JDK geht: Meide Oracle wie der Teufel das Weihwasser. Ok, Streich JDK. Meide Oracle wie der Teufel das Weihwasser. Ich denke, das kann man so stehen lassen. (Ok, manche gehen auch zu einer Domina oder so... Nicht mein Ding. Aber falls man so gewisse Neigungen hat, dann will man vielleicht doch zu Oracle?
) </Meine Meinung>
Wenn es um ein JDK geht wären folgende Anlaufstellen meine Empfehlung:
-
https://adoptopenjdk.net/
-
https://de.azul.com/downloads/zulu-community/?os=macos&architecture=x86-64-bit&package=jdk
Und an Java Versionen: Die aktuelle Version mit Langzeit-Unterstützung ist 11. Das ist so das Minimum, das ich versuchen würden zu halten. Es gibt teilweise noch Firmen, die immer noch 8 einsetzen. Häufig, weil Software noch nicht mit Modulen klar kommt, was aber schlicht bedeutet, dass die Firmen es seid einigen Jahren versäumt haben, etwas zu aktualisieren, was dringend aktualisiert werden sollte. Also 8 kann noch notwendig sein, aber so es dafür keinen Grund gibt, ist 11 das Minimum, das ich empfehlen würde.
Aber Du hast ja schon 14 installiert - das ist natürlich auch ok und damit hast Du Zugriff auf die aktuellsten Features. Das ist garantiert nicht verkehrt!
Die Empfehlung zu Version 8 teile ich nicht. Das würde ich auf keinen Fall nutzen. Alleine schon, weil dann bei Fragen Lösungsvorschläge teilweise nicht funktionieren. Auf 8 arbeiten viele nicht mehr, d.h. wir nutzen auch neuere features und wir haben oft nicht im Kopf, ob nun eine Methode schon in 8 vorhanden war oder ob die erst mit 9, 10 oder 11 gekommen ist...
Das war dann so eine Übersicht der Punkte, die ich für wichtig erachte. Hoffe es war hilfreich und verständlich. Bei Fragen einfach noch einmal fragen. Derzeit habe ich kein mac os System im Zugriff um Dinge nach zu stellen / zu testen, aber so wirklich der Bedarf aufkommt kann ich auch noch einmal meinen mac mini am KVM Switch anschließen und in Betrieb nehmen. Der müsste noch in meinem Hardware-Schrank liegen (hoffe ich mal) ...