JDK installieren jdk-21 wird nicht erkannt

hk

Bekanntes Mitglied
Hallo Forum,
ich habe soeben Openjdk-21.0.1 heruntergeladen und in das Java-Verzeichnis gestellt und die JAVA_HOME Variable darauf gesetzt und neu gestartet. Wenn ich nun im Terminal java -version eingebe wird immer noch die Version 19 als aktuell angezeigt. Warum?
lg heinz
 

Robert Zenz

Top Contributor
Dann ist da wahrscheinlich noch ein Eintrag vorher in welchem Java 19 gefunden wird, oder JAVA_HOME wird woanders hin aufgeloest. Ich weisz nicht wie dynamisch das bei Microsoft Windows. Eventuell loest der das nur einmal beim Starten auf und dann ist es noch falsch.
 

KonradN

Super-Moderator
Mitarbeiter
Prüfe den Pfad - was ist alles genau im Pfad? Ist irgendwo noch eine java.exe?

Wenn Du auch mal eine ganz alte Java Installation hattest, dann hast Du z.B. java.exe, javac.exe u.s.w. in das system32 Verzeichnis installiert bekommen. Die waren dann im Pfad immer an erster Stelle und das waren dann Wrapper, die in der Registry geschaut haben, welches Java gestartet werden soll.

Du kannst unter Windows 11 auch einmal where java in der Eingabeaufforderung eingeben. Das zeigt Dir dann alle java im Pfad an. Bei mir eben hat er dann angezeigt:
  • ein java 8
  • ein java 11
  • ein java 17

Das liegt einfach daran, dass alle auf dem Pfad waren - Je nachdem, was für ein Java ich brauche, setze ich JAVA_HOME und Pfad neu wobei letzteres einfach %JAVA_HOME%\bin an den Anfang vom Pfad setzt. Das führt dann zu solchen Ketten :)
 

hk

Bekanntes Mitglied
Prüfe den Pfad - was ist alles genau im Pfad? Ist irgendwo noch eine java.exe?

Wenn Du auch mal eine ganz alte Java Installation hattest, dann hast Du z.B. java.exe, javac.exe u.s.w. in das system32 Verzeichnis installiert bekommen. Die waren dann im Pfad immer an erster Stelle und das waren dann Wrapper, die in der Registry geschaut haben, welches Java gestartet werden soll.

Du kannst unter Windows 11 auch einmal where java in der Eingabeaufforderung eingeben. Das zeigt Dir dann alle java im Pfad an. Bei mir eben hat er dann angezeigt:
  • ein java 8
  • ein java 11
  • ein java 17

Das liegt einfach daran, dass alle auf dem Pfad waren - Je nachdem, was für ein Java ich brauche, setze ich JAVA_HOME und Pfad neu wobei letzteres einfach %JAVA_HOME%\bin an den Anfang vom Pfad setzt. Das führt dann zu solchen Ketten :)
In den Systemvariablen habe ich einen Java Eintrag: JAVA_HOME C:\Program Files\Java\jdk-21.0.1
Im Pfad finde ich folgende Eintragungen:
C:\Program Files\Common Files\Oracle\Java\javapath
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
%JAVA_HOME%\bin

in der System32 gibt es einen Eintrag: JavaScriptCollectionAgent.dll

Das mit "where java" blitzt nur kurz auf, da kann ich nichts sehen,
lg heinz
 

KonradN

Super-Moderator
Mitarbeiter
Das mit "where java" blitzt nur kurz auf, da kann ich nichts sehen
Da einfach erst eine Eingabeaufforderung starten und den Befehl in der Eingabeaufforderung eingeben.

Im Pfad finde ich folgende Eintragungen:
C:\Program Files\Common Files\Oracle\Java\javapath
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
%JAVA_HOME%\bin

Wenn im Pfad mehrere Einträge sind, dann nimmt er das erste Java, das er finden kann. Daher den richtigen Eintrag an den Anfang setzen. Und man muss aufpassen mir der Nutzung von Umgebungsvariablen in Umgebungsvariablen. Nicht dass die Reihenfolge, in der diese Variablen gesetzt werden, zum Problem wird. Sollte PATH vor JAVA_HOME gesetzt werden, dann hat man da nur noch ein \bin im Pfad und das dürfte nichts bringen.

Sowas kann man aber prüfen: Einfach ein echo %PATH% ausführen (in einer Eingabeaufforderung!)
Dann sieht man den konkreten Pfad, der gesetzt wurde ohne jede weitere Umgebungsvariable!
 

hk

Bekanntes Mitglied
Sowas kann man aber prüfen: Einfach ein echo %PATH% ausführen (in einer Eingabeaufforderung!)
Dann sieht man den konkreten Pfad, der gesetzt wurde ohne jede weitere Umgebungsvariable!
Das Ergebnis der Anfragen sieht nicht gut aus:
PS C:\Users\User> echo %PATH%
%PATH%
PS C:\Users\User> where java
PS C:\Users\User>
 

KonradN

Super-Moderator
Mitarbeiter
Du bist in PowerShell und nicht auf einer Eingabeaufforderung.

Starte sonst einfach einmal ein cmd - das gibt Dir eine Eingabeaufforderung.
 

hk

Bekanntes Mitglied
Starte sonst einfach einmal ein cmd - das gibt Dir eine Eingabeaufforderung.
Ok, ich habe einfach %JAVA_HOME% an den Anfang des Pfads gesetzt und nun dürfte es funktionieren. Die Anzeigen:
C:\Users\User>echo %PATH%
C:\Program Files\Java\jdk-21.0.1\bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\PC Connectivity Solution\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\iCLS\;C:\Program Files\Intel\Intel(R) Management Engine Components\iCLS\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\NVIDIA Corporation\NVIDIA NGX;C:\Program Files (x86)\Common Files\Acronis\VirtualFile\;C:\Program Files (x86)\Common Files\Acronis\VirtualFile64\;C:\Program Files (x86)\Common Files\Acronis\FileProtector\;C:\Program Files (x86)\Common Files\Acronis\FileProtector64\;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;C:\Program Files\Microsoft Network Monitor 3\;D:\cygwin64\bin\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;D:\Windows Kits\10\Windows Performance Toolkit\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\dotnet\;C:\Users\User\AppData\Local\Microsoft\WindowsApps;C:\Users\User\AppData\Local\GitHubDesktop\bin;C:\Users\User\.dotnet\tools

C:\Users\User>where java
C:\Program Files\Java\jdk-21.0.1\bin\java.exe
C:\Program Files\Common Files\Oracle\Java\javapath\java.exe
C:\Program Files (x86)\Common Files\Oracle\Java\javapath\java.exe

C:\Users\User>

Vielen Dank
 

Oneixee5

Top Contributor
Mal was Anderes - Wozu brauchst du das überhaupt? Programme wie Maven verwenden JAVA_HOME, IDE's verwenden was mitgeliefert wird oder lassen sich einstellen. Auch andere Java-Software wird als Binary ausgeliefert. Applets gibt es nicht mehr. Also wozu?
Ich mach das schon seit Jahren nicht mehr.
 

hk

Bekanntes Mitglied
Mal was Anderes - Wozu brauchst du das überhaupt? Programme wie Maven verwenden JAVA_HOME, IDE's verwenden was mitgeliefert wird oder lassen sich einstellen. Auch andere Java-Software wird als Binary ausgeliefert. Applets gibt es nicht mehr. Also wozu?
Ich mach das schon seit Jahren nicht mehr.
Alles hat damit begonnen dass ich mit der NetBean 15 Installation von ANT auf MAVEN umsteigen wollte. Seither funktionieren meine alten ANT-Programme nicht mehr und mit MAVEN habe ich Probleme mit der BOM. Es ist mir noch kein einziges Mal gelungen ein lauffähiges JAR-Programm außerhalb der IDE zum Laufen zu bringen. Nun dann probiert man halt das Eine und das Andere und kommt dann zu solchen Problemen.
 

Neumi5694

Top Contributor
JAVA_HOME hat seine Bedeutung mittlerweile verloren, Windows interessiert das schon mal gar nicht, da zählt nur der PATH.
Es war damals interessant, als man noch mehrere Java-Versionen installieren konnte und über die Optionen in der Systemsteuerung ausgewählt hat, welche für Applets verwendet werden soll.
Mittlerweile ist es üblich, mit jlink sozusagen eine JRE aus deiner JDK zu erstellen und mit deiner Software auszuliefern.

Im Normalfall ist die Umgebungsvariable nur noch dann wichtig, wenn du z.B. Batch Datei verwendest, die sich den Pfad aus eben jener Variable holt.
 

KonradN

Super-Moderator
Mitarbeiter
JAVA_HOME hat seine Bedeutung mittlerweile verloren
Nein, das stimmt so nicht. Der Path interessiert nur, wenn Du java direkt startest. Wenn Du aber Wrapper startest wie mvnw (oder gradlew vermutlich ebenso), dann wird das JAVA_HOME ausgewertet und da interessiert nicht, was auf dem Pfad ist. Da ist das JAVA_HOME Pflicht und ohne gesetztes JAVA_HOME bekommst Du einen Fehler.

Daher sind als Entwickler eben die von dir genannten Batch Dateien doch sehr wichtig.

Es war damals interessant, als man noch mehrere Java-Versionen installieren konnte und über die Optionen in der Systemsteuerung ausgewählt hat, welche für Applets verwendet werden soll.
Da wirfst Du auch etwas durcheinander. Das hatte mit JAVA_HOME nichts zu tun. Statt dessen gab es Wrapper Binaries, welche bei der Installation in System32 (Oder ins Windows Verzeichnis? Ist so lange her) gepackt wurden und die bei der Deinstallation auch auf dem System blieben.
Diese Wrapper hat dann Schlüssel in der Registry ausgewertet um dann das entsprechende Zielbinary zu starten.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
MiMa Ungültiges Datum wird nicht erkannt ?? Java Basics - Anfänger-Themen 6
Zrebna Umgebungsvariable Wieso wird meine verwendete JDK-Version in der Prompt nicht erkannt? Java Basics - Anfänger-Themen 6
fuerteb Compiler-Fehler Methode wird nicht bzw. als Fehler erkannt Java Basics - Anfänger-Themen 4
N Selection Algorithmus: Methode wird nicht erkannt (BlueJ) Java Basics - Anfänger-Themen 3
F Switch case wird als char nicht erkannt.... Java Basics - Anfänger-Themen 6
G String wird nach Einlesen aus Datei nicht erkannt Java Basics - Anfänger-Themen 3
U JRE_HOME Umgebungsvariable wird nicht erkannt Java Basics - Anfänger-Themen 7
J Collections Generics: Typ wird nicht erkannt Java Basics - Anfänger-Themen 7
O Schlüsselworte Syso wird nicht erkannt Java Basics - Anfänger-Themen 4
S png Datei wird nicht erkannt Java Basics - Anfänger-Themen 6
Z ActionListener wird nicht erkannt? Java Basics - Anfänger-Themen 5
Z Klassen Warum wird mein Objekt nicht erkannt? Java Basics - Anfänger-Themen 2
W Java wird nicht erkannt Java Basics - Anfänger-Themen 1
T JXInput wird nicht erkannt Java Basics - Anfänger-Themen 2
L return wird nicht erkannt? Java Basics - Anfänger-Themen 3
L Vererbung - Methode wird nicht erkannt Java Basics - Anfänger-Themen 5
B Bedingtes ODER wird nicht erkannt Java Basics - Anfänger-Themen 3
T Servlet wird nicht erkannt Java Basics - Anfänger-Themen 10
S Sonderzeichen "§" wird nicht erkannt - Stichwort Encoding! Java Basics - Anfänger-Themen 13
Z IOTools in Eclipse - IOTools wird nicht erkannt Java Basics - Anfänger-Themen 15
B Befehl "javac" wird nicht erkannt Java Basics - Anfänger-Themen 14
I Array und variable gleicher wert, wird jedoch nicht erkannt Java Basics - Anfänger-Themen 4
A KeyEvent wird nicht erkannt Java Basics - Anfänger-Themen 2
G jxl formel wird nicht erkannt. Java Basics - Anfänger-Themen 2
H instanz von Button wird nicht erkannt! Java Basics - Anfänger-Themen 6
B Konstruktor namen wird nicht erkannt Java Basics - Anfänger-Themen 9
A Konstruktor wird nicht erkannt Java Basics - Anfänger-Themen 2
G Jar Befehl wird von DOS nicht erkannt Java Basics - Anfänger-Themen 24
B eigene Klasse wird nicht im Hauptprogramm erkannt! Java Basics - Anfänger-Themen 4
G der Befehl "javac" wird nicht erkannt Java Basics - Anfänger-Themen 2
K Prob mit java.util.regex.matches-String wird nicht erkannt? Java Basics - Anfänger-Themen 9
raptorrs Einzulesende Datei wird nicht erkannt Java Basics - Anfänger-Themen 5
B Array von Choice wird nicht von getSelectedItem erkannt Java Basics - Anfänger-Themen 3
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
K REGEX - Rechnungsbetrag wird nicht richtig ausgelesen. Java Basics - Anfänger-Themen 3
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
M Text wird in der Console nicht ausgegeben. Java Basics - Anfänger-Themen 11
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
M Rechteck wird nicht angezeigt Java Basics - Anfänger-Themen 3
B Bungeecord | ProxiedPlayer wird nicht in ArrayList hinzugefügt Java Basics - Anfänger-Themen 1
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
M Mein quellcode wird nicht in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
I Code wird nicht ausgeführt Java Basics - Anfänger-Themen 2
M wird der Konstruktor nicht als 1. ausgeführt? Java Basics - Anfänger-Themen 13
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9
K Jlabel mit itemlistevent Text gegeben, wird nicht angezeigt Java Basics - Anfänger-Themen 5
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
O System.out.println wird nicht ausgegeben? Java Basics - Anfänger-Themen 11
el_pato DialogFenster wird nicht in Schleife geöffnet? Java Basics - Anfänger-Themen 30
J if-Schleife innerhalb einer if-Schleife wird in der Konsole nicht gelesen Java Basics - Anfänger-Themen 4
P Apache Derby wird in Eclipse trotz Anbindung nicht gefunden Java Basics - Anfänger-Themen 6
H Array wird als Rückgabewert nicht akzeptiert? Java Basics - Anfänger-Themen 2
L JScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 10
J JTable Titel wird nicht angezeigt Java Basics - Anfänger-Themen 6
H GridPane wird nicht angezeigt Java Basics - Anfänger-Themen 0
H Endkapital wird nicht korrekt ausgegeben. Java Basics - Anfänger-Themen 5
C Methodenrückgabe wird in der main nicht berücksichtigt Java Basics - Anfänger-Themen 2
kodela Hauptklasse wird nicht gefunden Java Basics - Anfänger-Themen 3
H Befehl wird nicht ausgeführt - System.out.println Java Basics - Anfänger-Themen 3
P Bedingung in Schleife wird nicht ausgeführt Java Basics - Anfänger-Themen 5
P Variablen HttpResponse.getBody() wird automatisch org.json Object und kann nicht zu json.simple Object gecastet werden? Java Basics - Anfänger-Themen 7
M Else wird nicht ausgeführt. Java Basics - Anfänger-Themen 5
E Methoden Action Event wird nicht vollständig ausgeführt Java Basics - Anfänger-Themen 3
C Beispiel-Code mit Pair wird nicht compiliert. Java Basics - Anfänger-Themen 8
S Integer Wert wird nicht übernommen Java Basics - Anfänger-Themen 2
NeoLexx Variable für Array wird nicht korrekt übergeben Java Basics - Anfänger-Themen 45
M BorderLayout, 2Panels, EAST wird nicht angezeigt ?? Java Basics - Anfänger-Themen 2
K File wird in der .Jar nicht gefunden Java Basics - Anfänger-Themen 3
J JDatePicker: Datum wird nicht in Textfeld übernommen Java Basics - Anfänger-Themen 5
J bundel - Datei wird nicht gefunden. Trotz STRG-SHIFT-J Java Basics - Anfänger-Themen 2
S Interpreter wird nicht gefunden Java Basics - Anfänger-Themen 1
Dann07 Sound wird nicht abgespielt Java Basics - Anfänger-Themen 25
T Dateiinhalt wird nicht in String eingelesen Java Basics - Anfänger-Themen 4
H .class Datei wird nicht ausgeführt Java Basics - Anfänger-Themen 2
G XML encoding wird nicht übernommen Java Basics - Anfänger-Themen 17
M ObservableList wird nicht richtig geleert Java Basics - Anfänger-Themen 0
P Input/Output PQ-Formel wird nicht richtig berechnet Java Basics - Anfänger-Themen 6
CptK Klassen mouseClicked wird nicht aufgerufen, während man die Maus bewegt Java Basics - Anfänger-Themen 4
M Klassen Warum wird es nicht gespeichert? Java Basics - Anfänger-Themen 2
N while Schleife wird nicht beendet, obwohl Sie hätte breaken sollen Java Basics - Anfänger-Themen 4
D JAVA JDK korrekt installieren javac wird nicht gefunden Java Basics - Anfänger-Themen 2
Zrebna Compiler-Fehler Java-Compiler wird nach 'javac' keyword-Eingabe nicht gestartet (Erste Übung) Java Basics - Anfänger-Themen 18
F Quellcode wird nicht in cmd angezeigt Java Basics - Anfänger-Themen 8
S JPanel wird nicht angezeigt Java Basics - Anfänger-Themen 1
T Methoden Boolean wird nicht gesetzt Java Basics - Anfänger-Themen 1
K Warum wird if-Schleife nicht ausgeführt? Java Basics - Anfänger-Themen 13
D Klassen Warum wird das Attribut nicht ausgegeben? Java Basics - Anfänger-Themen 8
D Schleife wird nicht "ausgeführt" Java Basics - Anfänger-Themen 10
F Wieso wird dieser Befehl nicht ausgeführt? (Anfänger) Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben