Umgebungsvariablen JAVA_HOME und Path : deren Zweck, Festlegung und Test

Anita1

Mitglied
Zusammenfassend die 3 Fragen:
  • Was ist Sinn und Zweck dieser beiden Variablen?
  • Mit was für Werten sollen sie belegt werden?
  • Wie kann ich die Richtigkeit meiner Festlegung testen?
Im Web fand ich folgende zwei Empfehlungen:

dass die Umbebungsvariable JAVA_HOME entweder als Benutzervariable eines einzelnen Benutzers oder als Systemvariable definiert ist (Was nun? entweder-oder ?!). Der Wert der Variablen muss auf das Installationsverzeichnis der Java VM oder JRE verweisen, zB auf C: \Program Files\Java\jre… In meinem Windows finde ich bei Java JDK Version 22 aber kein \jre-Verzeichnis. Wäre C: \Program Files\Java\jdk-22 richtig?

die Umgebungsvariable Path soll auf den Pfad zum BIN-Verzeichnis der VM oder JRE hinweisen. Ist damit etwa C: \Program Files\Java\jdk-22\bin gemeint?

MfG
Anita1
 
JAVA_HOME wird von Tools wie z.B. Maven benutzt, um auf auf Java / die Komponenten von Java zuzugreifen.
Der PATH gibt an, in welchen Verzeichnissen bei einem Programmaufruf nach dem Programm gesucht werden soll.

Die Werte hast Du schon richtig erkannt. JAVA_HOME verweist auf den Installationsort vom JDK und das bin Verzeichnis darin kommt mit in den Pfad. (Das ist eine Liste von Verzeichnissen, getrennt mit ;. Also bitte nicht komplett umsetzen.

Bezüglich Systemweit oder nur für den Benutzer: Wenn Du eine Systemweite Installation durchgeführt hast, dann sollten die Umgebungsvariablen auch systemweit gesetzt werden. Wenn Du es nur für einen Benutzer installiert hast, dann sollten die Variablen nur für den Benutzer angepasst werden.
 
Zusätzlich kann man das JDK/JRE dort installieren wo es passt ( nicht zwingend im voreingestellten Ordner ). Werte wie JAVA_HOME oder Path dienen u.a. zum Zentralisieren von Informationen, die sich (häufiger) ändern oder erweitern könn(t)en (<- auch in der Programmierung soll(te) man so vorgehen, dass Änderungen oder Erweiterungen nur an einer Stelle vorzunehmen sind).
 
Um JAVA_HOME zu testen kannst du im Terminal, je nach OS verschiedene Befehle verwenden.
Linux:
Bash:
echo $JAVA_HOME

$JAVA_HOME/bin/java -version

Windows:
Bash:
echo %JAVA_HOME%

%JAVA_HOME%\bin\java -version

Wenn der Pfad in der Umgebungsvariable Leerzeichen enthält, kann es zu Problemen kommen. Man kann dann versuchen die Pfade in Hochkommas zu setzen:
Bash:
"$JAVA_HOME/bin/"java -version
Ich denke das wird auch in Windows so ähnlich funktionieren. Im Zweifellfall hilft da Google oder eine KI deiner Wahl. Möglicherweise kann das noch mal jemand für Windows und Mac testen/berichten.

In aktuellen Java-Versionen (22) gibt es kein JRE mehr. Das ist überflüssig. Server benötigen sowieso ein JDK, da sie zur Laufzeit z.B.: JSP life kompilieren können. Desktopanwendungen werden jetzt als Image(.exe) ausgeliefert. Bei der Erzeugung des Images wird das "JRE" in das Image integriert. Es kann dabei auch eine hoch optimierte Runtime, für das Image erzeugt werden.

Die Idee mit dem Path finde ich gar nicht mal so gut. Kann man aber machen. So kann man PATH um JAVA_HOME/bin erweitern:
Bash:
export PATH=$PATH:$JAVA_HOME/bin
 
Zuletzt bearbeitet:

Zurück
Oben