# eclipse mit neuestem JDK einrichten



## gospat83 (7. Okt 2021)

Hallo zusammen,

ich möchte mich in Zukunft privat ein wenig mit Java Programmierung beschäftigen und bin gerade dabei mir meine "Programmierumgebung" einzurichten. Als IDE habe ich eclipse und als JDK die Version 17 von Oracle installiert. Was mir allerdings nicht ganz klar ist, ist die Konfiguration des JDK in eclipse selbst. 

Was muss ich tun, damit die Version 17 des JDK standardmäßig von eclipse verwendet wird? Bisher habe ich folgendes gemacht. In den *Preferences *--> *Java *--> *Installed JREs* habe ich das JDK 17 hinzugefügt und zur Standard VM gemacht. Nun sehe ich einen Menüpunkt tiefer unter *Execution Environments* "JavaSE-16". Unter *Compatible JREs* kann ich dann entweder gar nichts auswählen oder das JDK 17 oder "jre [perfect match]". Wähle ich dort jetzt das JDK 17 aus? Was bewirkt diese Einstellung dort überhaupt? Muss ich danach beim Anlegen eines Projektes unter JRE "Use a project specific JRE" das JDK 17 auswählen oder belasse ich es bei "Use an execution environment JRE"? Muss man ggf. noch andere Einstellungen vornehmen?

Fragen über Fragen ;-)

Viele Grüße
gospat83


----------



## kneitzel (7. Okt 2021)

Wenn Du Java 17 nutzen willst, dann musst Du das installierte JDK17 für Dein Projekt auswählen.

In Projekten legt man ansonsten gerne nur ein Execution Environment an. Das hat diverse Vorteile wie z.B. das einfache ersetzen durch eine bestimmte Implementierung. Aber da es in Eclipse noch kein JavaSE-17 gibt, wird das wohl erst mit der nächsten Version kommen.

Das wäre so meine einfache Sicht darauf - aber als jemand, der Eclipse eigentlich nicht nutzt, wenn es nicht sein muss


----------



## gospat83 (7. Okt 2021)

Ok, danke für die Info. Dann hätte ich nur noch die eine Frage, was bewirkt dieses "Compatible JREs"?


----------



## kneitzel (7. Okt 2021)

Ich versuche einmal, das große Bild zu skizzieren:

Was wir schon hatten, war: Es wird ein konkretes JDK (Bei Eclipse wird von JRE gesprochen, da dort halt der Fokus auf dem Execution Environment liegt, ich als Entwickler sehe aber erst einmal das JDK, denn ich will ja entwickeln. Hier einfach JRE = JDK setzen und bitte nicht einfach nur irgendwelche JRE installieren, die Du ggf. noch irgendwo findest  )
Wenn Du jetzt das JDK ersetzt, dann wird das JDK nicht mehr gefunden oder oder oder .... Es gibt ja viele Anbieter, die ein OpenJDK heraus geben.
Hinzu kommt, dass Du mit einem JDK vieles abdecken kannst. Du willst etwas bauen, was Java 11 nutzen soll? Dann kannst Du tatsächlich mit dem Java 17 etwas bauen, das später mit Java 11 ausgeführt wird.

Daher kommt dann die Idee bei Eclipse auf. Hier werden abstrakte Gruppierungen eingeführt. Also z.B. "JavaSE-11". 
Dies kann dann auch eingetragen werden. Damit das erst einmal nutzbar ist, muss man dem nun irgendwas zuweisen: Was für ein JDK soll denn benutzt werden, wenn JavaSE-11 ausgewählt wurde? Das ist der Punkt Execution Environments: Hier kannst Du angeben, welche JDKs wann verwendet werden sollen. Das ist individuell für den Arbeitsplatz.

Bei einem Arbeitsplatz ist Evtl. noch ein Java 16 installiert -> Das wird dann überall drin sein weil einziges JDK.

Bei einem Arbeitsplatz ist schon Java 17 installiert - auch einziges JDK, daher überall steht da da drin.

Ich habe von mir aus ein JDK 17 und ein JDK 11 und auch noch ein JDK 8. Dann steht bei JavaSE-8 und früher das JDK 8, bei 9-11 das JSK 11 und 12-16 das JDK 17 drin. 

Und nun überlegen wir, was passiert, wenn ich in einem Projekt, das an allen drei Arbeitsplätzen das JavaSE-11 auf mein Java JDK 11 ändere. Dann habe ich etwas gewählt, was bei den ersten zwei Plätzen nicht da ist. Da werden die Entwickler also vermutlich Probleme haben. (Die Entwickler von Eclipse haben da ggf. auch Unterstützung und Automatismen ... aber dazu kenne ich Eclipse nicht tief genug.)


----------



## gospat83 (7. Okt 2021)

Ah ok, jetzt verstehe ich es. Danke dir für die ausführliche Erklärung. Nun kann es endlich richtig losgehen ;-)


----------

