Articles

Umgebungsvariablen in Windows / macOS/Linux

Was sind Umgebungsvariablen?

Umgebungsvariablen sind globale Systemvariablen, auf die alle Prozesse / Benutzer zugreifen können, die unter dem Betriebssystem (OS) wie Windows, macOS und Linux ausgeführt werden. Umgebungsvariablen sind nützlich, um systemweite Werte zu speichern, zum Beispiel

  • PATH: die am häufigsten verwendete Umgebungsvariable, die eine Liste von Verzeichnissen speichert, um nach ausführbaren Programmen zu suchen.
  • OS: das Betriebssystem.
  • COMPUTENAMEUSERNAME: Speichert den Computer und den aktuellen Benutzernamen.
  • SystemRoot: Das Systemstammverzeichnis.
  • (Windows) HOMEDRIVEHOMEPATH: Home-Verzeichnis des aktuellen Benutzers.

(Windows) Umgebungsvariablen

Umgebungsvariablen in Windows sind NICHT case-sensitive (weil die Legacy-DOS ist nicht case-sensitive). Sie werden normalerweise in Großbuchstaben benannt, wobei Wörter mit einem Unterstrich verbunden sind (_), z. B. JAVA_HOME.

Umgebungsvariablen und ihre Werte anzeigen

Um ALLE Umgebungsvariablen und ihre Werte aufzulisten, starten Sie ein CMD und geben Sie den Befehl „set“ wie folgt aus:

// Display all the variables (in NAME=VALUE pairs)setCOMPUTERNAME=xxxxxxxOS=xxxxxxxPATH=xxxxxxx.......

Geben Sie auf Ihrem System den Befehl „set untersuchen Sie die aufgelisteten Umgebungsvariablen. Achten Sie besonders auf die Variable PATH .

Um eine bestimmte Variable anzuzeigen, verwenden Sie den Befehl „set varname“ oder „echo %varname%„:

// Display a particular variableset COMPUTERNAMECOMPUTERNAME=xxxxxx// or, use "echo" command with variable name enclosed within a pair of '%'echo %COMPUTERNAME%COMPUTERNAME=xxxxxx

Eine Umgebungsvariable für die „aktuelle“ CMD-Sitzung festlegen/Aufheben/ändern

Um eine Umgebungsvariable festzulegen (oder zu ändern), verwenden Sie den Befehl „set varname=value„. Vor und nach dem '='-Zeichen dürfen keine Leerzeichen stehen. Um eine Umgebungsvariable zu deaktivieren, verwenden Sie „set varname=„, dh setzen Sie sie auf eine leere Zeichenfolge.

set varnameset varname=valueset varname=set
Display the value of the variableSet or change the value of the variable (Note: no space before and after '=')Delete the variable by setting to empty string (Note: nothing after '=')Display ALL the environment variables

For examples,

// Set an environment variable called MY_VARset MY_VAR=hello // Displayset MY_VARMY_VAR=hello // Unset an environment variableset MY_VAR= // Displayset MY_VAREnvironment variable MY_VAR not defined

An environment variable set via the „set“ command under CMD is a local, available to the current CMD session only. Try setting a variable, re-start CMD and look for the variable.

Verwenden einer Umgebungsvariablen

Um eine Variable in Windows zu referenzieren, verwenden Sie %varname% (mit Präfix und Suffix von '%'). Sie können beispielsweise den Befehl echo verwenden, um den Wert einer Variablen in der Form „echo %varname%“ zu drucken.

// Display the PATH environment variableecho %PATH%PATH=xxxxxxx // Append a directory in front of the existing PATHset PATH=c:\myBin;%PATH%PATH=c:\myBin;

Hinzufügen oder Ändern einer Umgebungsvariablen „Permanent“

Hinzufügen / Ändern einer Umgebungsvariablen dauerhaft in Windows (so dass sie für ALLE Windows-Prozesse / -Benutzer verfügbar ist und bootfähig bleibt):

  1. Starten Sie „Systemsteuerung“
  2. „System“
  3. „Erweiterte Systemeinstellungen“
  4. Wechseln Sie zur Registerkarte „Erweitert“
  5. „Umgebungsvariablen“
  6. Wählen Sie „Systemvariablen“ (für alle Benutzer)
  7. Um eine neue Umgebungsvariable hinzuzufügen:
    1. Wählen Sie „Neu“
    2. Geben Sie die Variablen „Name“ und „Wert“ ein. Anstatt den „Wert“ einzugeben und einen Tippfehler zu machen, schlage ich vor, dass Sie „Verzeichnis durchsuchen“ verwenden…“ oder „Datei durchsuchen…“ Taste, um das gewünschte Verzeichnis oder die gewünschte Datei abzurufen.
  8. So ändern Sie eine vorhandene Umgebungsvariable:
    1. Wählen Sie „Bearbeiten“
    2. Geben Sie den neuen „Wert“ ein. Anstatt den „Wert“ einzugeben und einen Tippfehler zu machen, schlage ich vor, dass Sie „Verzeichnis durchsuchen“ verwenden…“ oder „Datei durchsuchen…“ Taste, um das gewünschte Verzeichnis oder die gewünschte Datei abzurufen.

Sie müssen CMD NEU STARTEN, damit die neue Einstellung wirksam wird!

Um die neue Einstellung zu überprüfen, starten Sie CMD:

set VAR_NAMEVAR_NAME=VAR_VALUE

PATH-Umgebungsvariable in Windows

Wenn Sie ein ausführbares Programm (mit der Dateierweiterung „.exe.bat“ oder „.com„) von der CMD Shell, Windows sucht nach dem ausführbaren Programm im aktuellen Arbeitsverzeichnis, gefolgt von allen Verzeichnissen, die in der Umgebungsvariablen PATH aufgeführt sind. Wenn das Programm in diesen Verzeichnissen nicht gefunden werden kann, erhalten Sie die folgende Fehlermeldung:

// (Windows 2000/XP/Vista/7/8/10) "cmd.exe"abc'abc' is not recognized as an internal or external command,operable program or batch file. // (Windows 95/98) "command.com"abcBad command or file name

Um den aktuellen PATHaufzulisten, geben Sie den Befehl aus:

PATHPATH=path1;path1;path3;...

So fügen Sie dem PFAD in Windows ein Verzeichnis hinzu

So fügen Sie dem vorhandenen Verzeichnis ein Verzeichnis hinzu PATH in Windows:

  1. Starten Sie „Systemsteuerung“
  2. „System“
  3. „Erweiterte Systemeinstellungen“
  4. Wechseln Sie zur Registerkarte „Erweitert“
  5. „Umgebungsvariablen“
  6. Wählen Sie unter „Systemvariablen“ (für alle Benutzer) „Pfad“
  7. „Bearbeiten“
  8. (Für neueres Windows 10) Eine Tabelle mit den Verzeichnissen, die in der aktuellen Pfadeinstellung enthalten sind ⇒ „Neu“ ⇒ “ Durchsuchen…“ um das gewünschte Verzeichnis auszuwählen, das dem PFAD hinzugefügt werden soll (Geben Sie nicht ein, da Sie einen Tippfehler machen!) ⇒ Klicken Sie wiederholt auf „Nach oben“, um es nach oben zu verschieben ⇒ „OK“ (Nicht „Abbrechen“) ⇒ „OK“ ⇒ „OK“.
  9. (Für ältere Windows) Wenn Sie keine Popup-Tabelle sehen, ist es Zeit, Ihren Computer zu wechseln.

Sie müssen CMD NEU STARTEN, damit die neue Pfadeinstellung wirksam wird!

Um die neue Einstellung zu überprüfen, starten Sie CMD:

PATHPATH=path1;path2;path3;...

Hinweise:

  • Windows durchsucht das aktuelle Verzeichnis (.), bevor die PATH Einträge durchsucht werden. (Unixes / macOS durchsucht das aktuelle Verzeichnis nicht, es sei denn, Sie fügen es explizit in den PFAD ein.)
  • Windows verwendet Semikolon (;) als Pfadtrennzeichen; während Unixes / macOS Doppelpunkt verwendet (:).
  • Wenn Ihr Verzeichnisname Sonderzeichen wie Leerzeichen enthält (dringend nicht empfohlen), setzen Sie ihn in doppelte Anführungszeichen.

(macOS/Linux) Umgebungsvariablen

Umgebungsvariablen in macOS/Unixes sind case-sensitive. Globale Umgebungsvariablen (für ALLE Prozesse verfügbar) werden in Großbuchstaben benannt, wobei Wörter mit einem Unterstrich verbunden werden (_), z. B. JAVA_HOME. Lokale Variablen (nur für den aktuellen Prozess verfügbar) werden in Kleinbuchstaben angegeben.

Verwenden von Umgebungsvariablen in der Bash-Shell

Die meisten Unixe (Ubuntu/macOS) verwenden die sogenannte Bash-Shell. Unter bash shell:

  • Um alle Umgebungsvariablen aufzulisten, verwenden Sie den Befehl „env“ (oder „printenv„). Sie können auch „set“ verwenden, um alle Variablen einschließlich aller lokalen Variablen aufzulisten.
  • Um auf eine Variable zu verweisen, verwenden Sie $varname mit dem Präfix '$' (Windows verwendet %varname%).
  • Um den Wert einer bestimmten Variablen zu drucken, verwenden Sie den Befehl „echo $varname„.
  • Um eine Umgebungsvariable festzulegen, verwenden Sie den Befehl „export varname=value„, der die Variable festlegt und in die globale Umgebung exportiert (für andere Prozesse verfügbar). Setzen Sie den Wert in doppelte Anführungszeichen, wenn er Leerzeichen enthält.
  • Um eine lokale Variable zu setzen, verwenden Sie den Befehl „varname=value“ (oder „set varname=value„). Die lokale Variable ist nur innerhalb dieses Prozesses verfügbar.
  • Um eine lokale Variable zu deaktivieren, verwenden Sie den Befehl „varname=„, d. h. Auf leere Zeichenfolge setzen (oder „unset varname„).

So legen Sie eine Umgebungsvariable dauerhaft in der Bash-Shell fest

Sie können eine Umgebungsvariable dauerhaft festlegen, indem Sie einen export -Befehl in das Startskript Ihrer Bash-Shell einfügen „~/.bashrc“ (oder "~/.bash_profile“ oder „~/.profile„) Ihres Home-Verzeichnisses; oder „/etc/profile“ für systemweite Operationen. Beachten Sie, dass Dateien, die mit Punkt (.) beginnen, standardmäßig ausgeblendet sind. Um versteckte Dateien anzuzeigen, verwenden Sie den Befehl „ls -a“ oder „ls -al„.

Um beispielsweise der Umgebungsvariablen PATH ein Verzeichnis hinzuzufügen, fügen Sie die folgende Zeile am Ende von "~/.bashrc“ (oder "~/.bash_profile“ oder „~/.profile„) hinzu, wobei ~ bezeichnet das Home-Verzeichnis des aktuellen Benutzers oder „/etc/profile“ für ALLE Benutzer.

// Append a directory in front of the existing PATHexport PATH=/usr/local/mysql/bin:$PATH

(Für Java) Sie können die Umgebungsvariablen CLASSPATH festlegen, indem Sie die folgende Zeile hinzufügen. Zum Beispiel

export CLASSPATH=.:/usr/local/tomcat/lib/servlet-api.jar

Beachten Sie, dass Bash Shell Doppelpunkt (:) als Pfadtrennzeichen verwendet; während Windows Semikolon (;) verwendet.

Um die Bash-Shell zu aktualisieren, geben Sie den Befehl „source“ aus (oder starten Sie die Bash-Shell neu):

// Refresh the bash shellsource ~/.bashrc// orsource ~/.bash_profilesource ~/.profilesource /etc/profile

(Anmerkungen) Für die älteren csh (C-shell) und ksh (Korn-shell)

  • Verwenden Sie „printenv“ (oder „env„), um alle Umgebungsvariablen aufzulisten.
  • Verwenden Sie „setenv varname value“ und „unsetenv varname„, um eine Umgebungsvariable zu setzen und aufzuheben.
  • Verwenden Sie „set varname=value“ und „unset varname„, um eine lokale Variable für den aktuellen Prozess zu setzen und aufzuheben.

PATH-Umgebungsvariable

Die meisten Unixe und macOS verwenden die sogenannte Bash-Shell im „Terminal“. Wenn Sie ein ausführbares Programm (mit Dateiberechtigung von executable) in einer Bash-Shell starten, durchsucht das System das Programm in ALLEN Verzeichnissen, die in PATH . Wenn das Programm nicht gefunden werden kann, erhalten Sie die folgende Fehlermeldung:

abcbash: abc: command not found

Beachten Sie, dass das aktuelle Verzeichnis (.) nicht durchsucht wird, es sei denn, es ist in der PATH enthalten. Um ein Programm im aktuellen Verzeichnis auszuführen, müssen Sie den aktuellen Pfad angeben (./), z. B.

./myProgram

Um den aktuellen PATHaufzulisten, geben Sie den Befehl:

echo $PATHpath1:path2:path3:...

Hinzufügen eines Verzeichnisses zum PFAD in macOS/Linux

Um ein Verzeichnis zum vorhandenen hinzuzufügen PATH Fügen Sie in macOS/Unixes die folgende Zeile am Ende eines der Startskripte hinzu, z. B. "~/.bashrc~/.login"~/.bash_profile~/.profile“ (wobei ~ das Home-Verzeichnis des aktuellen Benutzers bezeichnet) oder „/etc/profile“ für ALLE Benutzer.

// Append a directory in front of the existing PATHexport PATH=/path/to/dir:$PATH

Um die Bash-Shell zu aktualisieren, geben Sie den Befehl „source“ aus (oder starten Sie die Bash-Shell neu):

// Refresh the bash shellsource ~/.bashrc// orsource ~/.bash_profilesource ~/.profilesource /etc/profile

Starten Sie CMD, um die neue Einstellung zu überprüfen:

echo $PATHpath1:path2:path3:...

Hinweise:

  • Unixes/macOS durchsucht das aktuelle Verzeichnis nicht (.), es sei denn, Sie fügen es explizit in das PATH ein. Mit anderen Worten, um ein Programm im aktuellen Verzeichnis auszuführen, müssen Sie das Verzeichnis angeben (./), z. B.
    ./myProgram

    Sie können das aktuelle Verzeichnis in die PATH, indem Sie diese Zeile in einem Startskript hinzufügen:

    // Append the current directory (.) in front of the existing PATHexport PATH=.:$PATH

    (Windows durchsucht das aktuelle Verzeichnis (.) automatisch, bevor der PFAD durchsucht wird.)

  • Unixes/macOS verwendet Doppelpunkt (:) als Pfadtrennzeichen; während Windows Semikolon verwendet (;).

Java-Anwendungen und die Umgebungsvariablen PATH, CLASSPATH, JAVA_HOME

Viele Probleme bei der Installation und Ausführung von Java-Anwendungen werden durch falsche Einstellung von Umgebungsvariablen (globale Systemvariablen, die für alle Prozesse /Benutzer verfügbar sind, die unter dem Betriebssystem ausgeführt werden) verursacht, insbesondere PATHCLASSPATH und JAVA_HOME.

PFAD

Wenn Sie ein Programm über die Befehlszeile starten, verwendet das Betriebssystem die PATH Umgebungsvariable, um in Ihrem lokalen Dateisystem nach dem Programm zu suchen. Mit anderen Worten, PATH verwaltet eine Liste von Verzeichnissen zum Durchsuchen ausführbarer Programme.

PFAD (Für Windows)

Wenn Sie ein ausführbares Programm (mit der Dateierweiterung „.exe.bat“ oder „.com„) von der CMD-Shell aus starten, sucht Windows im aktuellen Arbeitsverzeichnis nach dem ausführbaren Programm, gefolgt von allen verzeichnisse, die in der Umgebungsvariablen PATH aufgeführt sind. Wenn das Programm in diesen Verzeichnissen nicht gefunden werden kann, erhalten Sie die folgende Fehlermeldung:

// (Windows 2000/XP/Vista/7/8/10) "cmd.exe"abc'abc' is not recognized as an internal or external command,operable program or batch file. // (Windows 95/98) "command.com"abcBad command or file name

Wenn Sie beispielsweise versuchen, den Java-Compiler „javac.exe“ zum Kompilieren einer Java-Quelldatei zu verwenden, aber „javac.exe“ kann nicht im aktuellen Verzeichnis und in allen Verzeichnissen im PATH , erhalten Sie die folgende Fehlermeldung:

javac Hello.java'javac' is not recognized as an internal or external command,operable program or batch file.

PATH verwaltet eine Liste von Verzeichnissen. Die Verzeichnisse werden in Windows durch Semikolon (;) getrennt.

Für Java-Anwendungen muss PATH die folgenden Verzeichnisse enthalten:

  • JDKs „bin“ (Binär-) Verzeichnis (z. B. „c:\Program Files\java\jdk1.x.x\bin„), das JDK-Programme wie Java Compiler „javac.exe“ und Java Runtime „java.exe„.
  • c:\windows\system32“ und „c:\windows„, die Konsolenprogramme und -befehle enthalten.

Das JDK-Verzeichnis „bin“ sollte vor „c:\windows\system32“ und „c:\windows“ im PATH . Dies liegt daran, dass einige ältere Windows-Systeme ihre eigene Java-Laufzeit (die oft veraltet ist) in diesen Verzeichnissen bereitstellen (versuchen Sie, auf Ihrem Computer nach „java.exe“ zu suchen, möglicherweise finden Sie einige Einträge).

Um ein Verzeichnis (z. B. JDKs „bin„) zum vorhandenen PFAD hinzuzufügen, überprüfen Sie „So fügen Sie dem PFAD ein Verzeichnis hinzu“.

PFAD (für macOS/Linux)

Die meisten Unixe und macOS verwenden die sogenannte Bash-Shell im „Terminal“. Wenn Sie ein ausführbares Programm (mit Dateiberechtigung von executable) in einer Bash-Shell starten, durchsucht das System das Programm in ALLEN Verzeichnissen, die in PATH . Wenn das Programm nicht gefunden werden kann, erhalten Sie den folgenden Fehler:

abcbash: abc: command not found

Wenn Sie beispielsweise versuchen, den Java-Compiler „javac“ zum Kompilieren einer Java-Quelldatei zu verwenden, aber „javac“ kann nicht in der Liste der Verzeichnisse im PATH, erhalten Sie die folgende Fehlermeldung:

javac Hello.javabash: javac: command not found

Um Java-Anwendungen zu unterstützen, müssen Sie das JDK-Verzeichnis „bin“ (binär) in den PFAD aufnehmen. Siehe „Hinzufügen eines Verzeichnisses zum PFAD“.

CLASSPATH

Java Archive (JAR) File

Um die Verteilung zu vereinfachen, werden Java-Klassen oft zusammen in einer sogenannten JAR-Datei archiviert (gezippt). Um ein Java-Paket eines Drittanbieters zu verwenden, müssen Sie die verteilte JAR-Datei an einem Speicherort ablegen, der für den Java-Compiler und die Java-Laufzeit verfügbar ist.

Wie werden Klassen gefunden?

Java Compiler („javac„), Java Runtime („java„) and other Java tools searches for classes used in your program in this order:

  1. Java platform (bootstrap) classes: include system classes in core packages (java.*) and extension packages (javax.*) in „rt.jar“ (runtime class), „i18n.jar“ (internationalization class), charsets.jarjre/classes, and others.
  2. Java Extension Directories: Sie können die externen JAR-Dateien in das Java-Erweiterungsverzeichnis kopieren (dies wird entfernt und gilt nicht für JDK 10).
    • Für Windows befindet sich das Java-Erweiterungsverzeichnis unter „<JAVA_HOME>\jre\lib\ext“ (z. B. „c:\Program Files\Java\jdk1.7.0_{xx}\jre\lib\ext„).
    • Für macOS lauten die JDK-Erweiterungsverzeichnisse „/Library/Java/Extensions“ und „/System/Library/Java/Extensions„.
    • Für Ubuntu sind die JDK-Erweiterungsverzeichnisse „<JAVA_HOME>/jre/lib/ext“ (z. B. „/usr/user/java/jdk1.7.0_{xx}/jre/lib/ext„) und „/usr/java/packages/lib/ext„.

    Der Speicherort der Erweiterungsverzeichnisse von Java wird in Javas Systemeigenschaft „java.ext.dirs“ gespeichert. Sie können den Inhalt über System.out.println(System.getProperty("java.ext.dirs")) .

  3. Benutzerklassen Suchpfad (kurz Klassenpfad): in der folgenden Reihenfolge ermittelt:
    1. Standardmäßig das aktuelle Arbeitsverzeichnis (.).
    2. Einträge in der CLASSPATH Umgebungsvariable, die den Standardwert überschreibt.
    3. Einträge in der -cp (oder -classpath) Befehlszeilenoption, die die CLASSPATH Umgebungsvariable überschreibt.
    4. Die Laufzeit-Befehlszeilenoption -jar, die alle oben genannten überschreibt.

    Die Benutzerklassenpfade werden in der Java-Systemeigenschaft „java.class.path“ gespeichert.
    Es wird empfohlen, die -cp (oder -classpath) Befehlszeilenoption (für jede Ihrer Anwendungen angepasst) zu verwenden, anstatt eine permanente CLASSPATH -Umgebung für alle Java-Anwendungen festzulegen. IDE (wie Eclipse / NetBeans) verwaltet -cp-classpath) für jede der Anwendungen und ist nicht auf die CLASSPATH -Umgebung angewiesen.

Klassen können nicht gefunden werden

Wenn die Java-Laufzeit („java„) die in Ihrem Programm verwendeten Klassen an allen oben genannten Stellen nicht finden kann, wird der Fehler „Hauptklasse xxxx konnte nicht gefunden oder geladen werden“ (JDK 1.7) oder „java.lang.NoClassDefFoundError“ (Vor JDK 1.7).

In ähnlicher Weise gibt der Java-Compiler („javac„) Kompilierungsfehler aus, z. B. „Symbol kann nicht gefunden werden“, „Paket existiert nicht“.

Anmerkungen: Externe native Bibliotheken („.lib.dll.a.so„) befinden sich in einem Pfad in der Eigenschaft von JRE „java.library.path„, das normalerweise, aber nicht unbedingt alle Verzeichnisse in der Umgebungsvariablen PATH enthält. Andernfalls erhalten Sie einen Laufzeitfehler „java.lang.UnsatisfiedLinkError: no xxx in java.library.path„.

CLASSPATH-Umgebungsvariable

Die CLASSPATH -Umgebungsvariable kann Verzeichnisse (die viele Klassendateien enthalten) und JAR-Dateien (ein Archiv von Klassendateien mit einer Datei) enthalten. Wenn CLASSPATH nicht gesetzt ist, wird standardmäßig das aktuelle Verzeichnis verwendet. Wenn Sie das CLASSPATH setzen, ist es wichtig, das aktuelle Arbeitsverzeichnis (.) einzuschließen. Andernfalls wird das aktuelle Verzeichnis nicht durchsucht.

Ein häufiges Problem beim Ausführen von Hello-World-Programmen ist: CLASSPATH ist gesetzt, enthält aber nicht das aktuelle Arbeitsverzeichnis. Das aktuelle Verzeichnis wird daher nicht durchsucht, was zu „Error: Could not find or load main class Hello“ führt. Sie können einfach die CLASSPATH entfernen und den Klassenpfad standardmäßig im aktuellen Verzeichnis belassen.

Für Anfänger ist keine explizite CLASSPATH Einstellung erforderlich. Die Standardeinstellung CLASSPATH des aktuellen Verzeichnisses ist ausreichend. Entfernen Sie alle CLASSPATH Einstellungen, falls vorhanden. Wenn Sie jedoch CLASSPATH festlegen müssen, stellen Sie sicher, dass Sie das aktuelle Verzeichnis '.' .

Die PATH Umgebungsvariable (zum Durchsuchen der ausführbaren Programme) gilt für alle Anwendungen; während CLASSPATH nur von Java verwendet wird.

JDK-Dokumente lesen „Festlegen der CLASSPATH“ und „Wie Klassen gefunden werden“ (Sie finden die Hyperlinks auf der Indexseite der JDK-Dokumentation oder googeln).

Umgebungsvariable CLASSPATH (für Windows)

Die CLASSPATH akzeptiert Verzeichnisse und JAR-Dateien. Pfadeinträge werden durch Semikolon getrennt (;).

Beispiel: Anzeigen und Ändern von CLASSPATH für die aktuelle CMD-Sitzung.

// Display current setting of CLASSPATHset CLASSPATH // Set CLASSPATH to the current directory and a JAR fileset CLASSPATH=.;d:\tomcat\lib\servlet-api.jar

Sie können die CLASSPATH dauerhaft setzen. Siehe „Festlegen einer Umgebungsvariablen“.

CLASSPATH (für macOS/Ubuntu)
  1. Geben Sie diesen Befehl aus, um die CLASSPATH für die aktuelle Sitzung festzulegen:
    export CLASSPATH=.:/usr/local/tomcat/bin/servlet-api.jar

    Verwenden Sie den Doppelpunkt ‚:‚ als Pfadtrennzeichen (anstelle des Semikolons ‚;‚ in Windows).

  2. Um die CLASSPATH dauerhaft zu setzen, platzieren Sie den obigen Exportbefehl im Bash-Shell-Initialisierungsskript (.bashrc oder .bash_profile des Home-Verzeichnisses oder /etc/profile für alle Benutzer). Siehe „Festlegen einer Umgebungsvariablen“.

JAVA_HOME und JRE_HOME

Für viele Java-Anwendungen (z. B. Tomcat) muss die Umgebungsvariable JAVA_HOME auf das installierte JDK-Verzeichnis gesetzt werden.

So setzen Sie JAVA_HOME in Windows

Überprüfen Sie zunächst, ob JAVA_HOME bereits festgelegt ist, indem Sie eine CMD starten und Folgendes ausgeben:

set JAVA_HOME

Wenn JAVA_HOME nicht festgelegt ist, erhalten Sie „Umgebungsvariable JAVA_HOME nicht definiert“. Andernfalls wird die aktuelle Einstellung angezeigt.

So setzen/ändern Sie JAVA_HOME in Windows:

  1. Starten Sie „Systemsteuerung“
  2. „System“
  3. „Erweiterte Systemeinstellungen“
  4. Wechseln Sie zur Registerkarte „Erweitert“
  5. „Umgebungsvariablen“
  6. Wählen Sie „Systemvariablen“ (für alle Benutzer)
  7. Um eine neue Umgebungsvariable hinzuzufügen „JAVA_HOME„:
    1. Wählen Sie „Neu“
    2. Geben Sie unter „Variablenname“ „JAVA_HOME“ ein.
    3. Klicken Sie in „Variablenwert“auf „Verzeichnis durchsuchen“…“ und navigieren Sie zum installierten JDK-Verzeichnis (z. B. „C:\Program Files\Java\jdk-15.0.xx„).
    4. OK ⇒ OK ⇒ OK.
  8. So ändern Sie die vorhandene Einstellung „JAVA_HOME„:
    1. Wählen Sie „JAVA_HOME“ ⇒ „Bearbeiten“
    2. Klicken Sie in „Variablenwert“ auf „Verzeichnis durchsuchen“…“ und navigieren Sie zum installierten JDK-Verzeichnis (z. B. „C:\Program Files\Java\jdk-15.0.xx„).
    3. OK ⇒ OK ⇒ OK.

Sie müssen CMD NEU STARTEN, damit die neue Einstellung wirksam wird!

Um die neue Einstellung zu überprüfen, starten Sie CMD neu:

set JAVA_HOMEJAVA_NAME=C:\Program Files\Java\jdk-13.0.1
So setzen Sie JAVA_HOME unter Linux/ macOS (Bash Shell)

Überprüfen Sie zunächst, ob JAVA_HOME bereits festgelegt ist, indem Sie ein Terminal starten und Folgendes ausgeben:

echo $JAVA_HOME

JAVA_HOME ist auf das installierte JDK-Verzeichnis zu setzen. Sie müssen Ihr installiertes JDK-Verzeichnis finden.

Suchen Sie das installierte Verzeichnis von macOS und Ubuntu JDK.

Fügen Sie die folgende Zeile am Ende von "~/.bashrc“ (oder „~/.login„) hinzu. Beachten Sie, dass Dateinamen, die mit Punkt (.) beginnen, standardmäßig ausgeblendet sind.

Wie man das Ausblenden für macOS/Ubuntu aufhebt.

export JAVA_HOME=/path/to/JDK-installed-directory

Sie müssen die Bash-Shell aktualisieren, damit die neuen Einstellungen wirksam werden. Geben Sie den Befehl „source“ wie folgt aus:

// Refresh the Bash Shellsource ~/.bashrc // or "source ~/.login"// Verify the new settingecho $JAVA_HOME

Windows vs. Unixes/macOS

Java ist plattformunabhängig. Java-Klassen laufen sowohl unter Windows als auch Unix – binär kompatibel.

  • Unixe haben viele Shells, wie die neuere bash und die ältere cshksh. Windows hat zwei Shells: die neuere cmd.exe und die ältere command.com. Jede Shell verfügt über eigene Befehle, Dienstprogramme und eine eigene Skriptprogrammiersprache.
  • Der Variablenname von Unix wird als $varname bezeichnet, z. B. $CLASSPATH. Windows verwendet %varname%, z. B. %CLASSPATH%.
  • Unix uses command „printenv“ (print environment) or „env“ to list all the environment variables. Windows uses command „set„.
  • Unix’s PATH is set permanently in the login or shell initialization script (e.g., „~/.login~/.profile~/.bashrc~/.bash_profile„, or „/etc/profile„). Windows‘ PATH is set permanently via Control Panel ⇒ System ⇒ ….
  • Das aktuelle Verzeichnis ist NICHT implizit im PATH des Unix enthalten. Um ein Programm im aktuellen Verzeichnis auszuführen, müssen Sie „./programName“ ausgeben, wobei „.“ das aktuelle Verzeichnis bezeichnet. Es wird empfohlen, das aktuelle Verzeichnis (.) explizit in das PATH aufzunehmen. Andererseits ist das aktuelle Verzeichnis implizit in Windows‘ PATH enthalten.
  • Ein Windows-Pfad enthält einen Laufwerksbuchstaben und Verzeichnisse. Jedes Laufwerk hat ein Stammverzeichnis. Es verwendet Back-Slash '\' als Verzeichnistrennzeichen (z. B. „c:\jdk1.6\bin„). Linux-Pfade haben keinen Laufwerksbuchstaben. Es gibt eine einzige Wurzel. Unix verwendet Schrägstriche '/' als Verzeichnistrennzeichen (z. B. „/usr/bin/jdk1.6„).
  • Windows verwendet Semikolon ';' als Pfadtrennzeichen (z. B. in PATH Umgebungsvariable), während Unix Doppelpunkt ':' verwendet.
  • Windows/ DOS verwendet „0D0AH“ (Wagenrücklauf plus Zeilenvorschub) als Zeilenumbruch (oder Zeilenende (EOL) oder Zeilenumbruch). Unixes/macOS verwendet nur „0AH“ (Zeilenvorschub).