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. -
COMPUTENAME
USERNAME
: Speichert den Computer und den aktuellen Benutzernamen. -
SystemRoot
: Das Systemstammverzeichnis. - (Windows)
HOMEDRIVE
HOMEPATH
: 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):
- Starten Sie „Systemsteuerung“
- „System“
- „Erweiterte Systemeinstellungen“
- Wechseln Sie zur Registerkarte „Erweitert“
- „Umgebungsvariablen“
- Wählen Sie „Systemvariablen“ (für alle Benutzer)
- Um eine neue Umgebungsvariable hinzuzufügen:
- Wählen Sie „Neu“
- 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.
- So ändern Sie eine vorhandene Umgebungsvariable:
- Wählen Sie „Bearbeiten“
- 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 PATH
aufzulisten, 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:
- Starten Sie „Systemsteuerung“
- „System“
- „Erweiterte Systemeinstellungen“
- Wechseln Sie zur Registerkarte „Erweitert“
- „Umgebungsvariablen“
- Wählen Sie unter „Systemvariablen“ (für alle Benutzer) „Pfad“
- „Bearbeiten“
- (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“.
- (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 diePATH
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 PATH
aufzulisten, 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 dasPATH
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 PATH
CLASSPATH
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:
- 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.jar
jre/classes
, and others. - 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 überSystem.out.println(System.getProperty("java.ext.dirs"))
. - Für Windows befindet sich das Java-Erweiterungsverzeichnis unter „
- Benutzerklassen Suchpfad (kurz Klassenpfad): in der folgenden Reihenfolge ermittelt:
- Standardmäßig das aktuelle Arbeitsverzeichnis (
.
). - Einträge in der
CLASSPATH
Umgebungsvariable, die den Standardwert überschreibt. - Einträge in der
-cp
(oder-classpath
) Befehlszeilenoption, die dieCLASSPATH
Umgebungsvariable überschreibt. - 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 permanenteCLASSPATH
-Umgebung für alle Java-Anwendungen festzulegen. IDE (wie Eclipse / NetBeans) verwaltet-cp
-classpath
) für jede der Anwendungen und ist nicht auf dieCLASSPATH
-Umgebung angewiesen. - Standardmäßig das aktuelle Arbeitsverzeichnis (
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)
- 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). - 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:
- Starten Sie „Systemsteuerung“
- „System“
- „Erweiterte Systemeinstellungen“
- Wechseln Sie zur Registerkarte „Erweitert“
- „Umgebungsvariablen“
- Wählen Sie „Systemvariablen“ (für alle Benutzer)
- Um eine neue Umgebungsvariable hinzuzufügen „
JAVA_HOME
„:- Wählen Sie „Neu“
- Geben Sie unter „Variablenname“ „JAVA_HOME“ ein.
- Klicken Sie in „Variablenwert“auf „Verzeichnis durchsuchen“…“ und navigieren Sie zum installierten JDK-Verzeichnis (z. B. „
C:\Program Files\Java\jdk-15.0.xx
„). - OK ⇒ OK ⇒ OK.
- So ändern Sie die vorhandene Einstellung „
JAVA_HOME
„:- Wählen Sie „
JAVA_HOME
“ ⇒ „Bearbeiten“ - Klicken Sie in „Variablenwert“ auf „Verzeichnis durchsuchen“…“ und navigieren Sie zum installierten JDK-Verzeichnis (z. B. „
C:\Program Files\Java\jdk-15.0.xx
„). - OK ⇒ OK ⇒ OK.
- Wählen Sie „
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 älterecsh
ksh
. Windows hat zwei Shells: die neuerecmd.exe
und die älterecommand.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 dasPATH
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. inPATH
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).
Leave a Reply