zmienne środowiskowe w Windows/macOS/Linux
czym są zmienne środowiskowe?
zmienne środowiskowe są globalnymi zmiennymi systemowymi dostępnymi dla wszystkich procesów / użytkowników działających pod systemem operacyjnym (OS), takich jak Windows, macOS i Linux. Zmienne środowiskowe są przydatne do przechowywania wartości systemowych, na przykład,
-
PATH
: najczęściej używana zmienna środowiskowa, która przechowuje listę katalogów do wyszukiwania programów wykonywalnych. -
OS
: system operacyjny. -
COMPUTENAME
USERNAME
: przechowuje komputer i bieżącą nazwę użytkownika. -
SystemRoot
: katalog główny systemu. - (Windows)
HOMEDRIVE
HOMEPATH
: katalog domowy Bieżącego użytkownika.
(Windows) zmienne środowiskowe
zmienne środowiskowe w systemie Windows nie uwzględniają wielkości liter (ponieważ starszy DOS nie uwzględnia wielkości liter). Zazwyczaj są one nazywane wielkimi literami, ze słowami połączonymi z podkreśleniem (_
), np. JAVA_HOME
.
wyświetl zmienne środowiskowe i ich wartości
aby wyświetlić listę wszystkich zmiennych środowiskowych i ich wartości, Uruchom CMD i wydaj polecenie „set
„, w następujący sposób,
// Display all the variables (in NAME=VALUE pairs)setCOMPUTERNAME=xxxxxxxOS=xxxxxxxPATH=xxxxxxx.......
spróbuj wydać „set
” polecenie w systemie i przestudiuj wymienione zmienne środowiskowe. Zwróć szczególną uwagę na zmienną o nazwie PATH
.
aby wyświetlić konkretną zmienną, użyj polecenia „set varname
” lub „echo %varname%
„:
// Display a particular variableset COMPUTERNAMECOMPUTERNAME=xxxxxx// or, use "echo" command with variable name enclosed within a pair of '%'echo %COMPUTERNAME%COMPUTERNAME=xxxxxx
Ustaw/Wyłącz/Zmień zmienną środowiskową dla „bieżącej” sesji CMD
, aby ustawić (lub zmienić) zmienną środowiskową zmienna środowiskowa, użyj polecenia „set varname=value
„. Nie może być spacji przed i po znaku '='
. Aby usunąć zmienną środowiskową, użyj ” set varname=
„, tzn. ustaw ją na pusty łańcuch.
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.
używanie zmiennej środowiskowej
aby odwołać się do zmiennej w systemie Windows, użyj%varname%
(z prefiksem i przyrostkiem'%'
). Na przykład można użyć polecenia echo
, aby wydrukować wartość zmiennej w postaci „echo %varname%
„.
Jak dodać lub zmienić zmienną środowiskową „na stałe”
aby dodać / zmienić zmienną środowiskową na stałe w systemie Windows (tak, aby była dostępna dla wszystkich procesów/użytkowników systemu Windows i pozostała w obu startach):
- uruchom „Panel sterowania”
- „System”
- „Zaawansowane ustawienia systemowe”
- przejdź do zakładki „Zaawansowane”
- „zmienne środowiskowe”
- Wybierz „Zmienne systemowe” (dla wszystkich użytkowników)
- aby dodać nową zmienną środowiskową:
- wybierz „Nowa”
- wprowadź zmienną „Nazwa” i „wartość”. Zamiast wpisywać „wartość” i popełniać błąd literówki, proponuję użyć ” Przeglądaj katalog…”lub” przeglądaj plik…”przycisk, aby pobrać żądany katalog lub plik.
- aby zmienić istniejącą zmienną środowiskową:
- wybierz „Edytuj”
- wprowadź nową „wartość”. Zamiast wpisywać „wartość” i popełniać błąd literówki, proponuję użyć ” Przeglądaj katalog…”lub” przeglądaj plik…”przycisk, aby pobrać żądany katalog lub plik.
musisz ponownie uruchomić CMD, aby nowe ustawienie zaczęło działać!
aby zweryfikować nowe ustawienie, uruchom CMD:
set VAR_NAMEVAR_NAME=VAR_VALUE
zmienna środowiskowa ścieżki w systemie Windows
podczas uruchamiania programu wykonywalnego (z rozszerzeniem „.exe
.bat
” lub „.com
„) w powłoce cmd System Windows wyszukuje program wykonywalny w bieżącym katalogu roboczym, a następnie wszystkie katalogi wymienione w zmiennej środowiskowejPATH
. Jeśli programu nie można znaleźć w tych katalogach, pojawi się następujący błąd:
// (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
aby wyświetlić listę bieżącego PATH
, wydaj polecenie:
PATHPATH=path1;path1;path3;...
Jak dodać katalog do ścieżki w Windows
aby dodać katalog do istniejącego PATH
w Windows:
- uruchom „Panel sterowania”
- „System”
- „Zaawansowane ustawienia systemowe”
- przejdź do zakładki „Zaawansowane”
- „zmienne środowiskowe”
- pod „Zmienne systemowe” (dla wszystkich użytkowników) wybierz „ścieżka”
- „Edycja”
- (dla nowszego systemu Windows 10) pojawi się tabela pokazująca katalogi zawarte w bieżącym ustawieniu ścieżki ⇒ „nowe” ⇒ „przeglądaj…”aby wybrać żądany katalog, który ma zostać dodany do ścieżki (nie wpisuj, ponieważ popełnisz błąd literówki!) Click kliknij” Przenieś się ” wielokrotnie, aby przenieść go do góry ⇒ „OK” (Nie „Anuluj”) ⇒ „OK” ⇒ „OK”.
- (dla starszych systemów Windows) jeśli nie widzisz wyskakującej tabeli, nadszedł czas, aby zmienić komputer.
musisz ponownie uruchomić CMD, aby nowe ustawienie ścieżki odniosło skutek!
aby zweryfikować nowe ustawienie, uruchom CMD:
PATHPATH=path1;path2;path3;...
uwagi:
- Windows przeszukuje bieżący katalog (
.
) przed przeszukaniem wpisówPATH
. (Unixes / macOS nie przeszukuje bieżącego katalogu, chyba że umieścisz go jawnie w ścieżce.) - Windows używa średnika (
;
) jako separatora ścieżki; podczas gdy Unix / macOS używa dwukropka(:
). - Jeśli nazwa Twojego katalogu zawiera znaki specjalne, takie jak spacja (zdecydowanie nie zalecane), załącz ją podwójnymi cudzysłowami.
(macOS/Linux) zmienne środowiskowe
zmienne środowiskowe w systemie macOS / Unixes uwzględniają wielkość liter. Globalne zmienne środowiskowe (dostępne dla wszystkich procesów) są nazwane wielkimi literami, ze słowami połączonymi z podkreśleniem (_
), np. JAVA_HOME
. Zmienne lokalne (dostępne tylko dla bieżącego procesu) są pisane małymi literami.
używanie zmiennych środowiskowych w powłoce Bash
Większość Unixów (Ubuntu / macOS) używa tzw. powłoki Bash. Podbash
powłoka:
- aby wyświetlić listę wszystkich zmiennych środowiskowych, użyj polecenia „
env
” (lub „printenv
„). Możesz również użyć ”set
„, aby wyświetlić listę wszystkich zmiennych, w tym wszystkich zmiennych lokalnych. - aby odwołać się do zmiennej, użyj
$varname
, z prefiksem'$'
(Windows używa%varname%
). - aby wydrukować wartość danej zmiennej, użyj polecenia „
echo $varname
„. - aby ustawić zmienną środowiskową, użyj polecenia ”
export varname=value
„, które ustawia zmienną i eksportuje ją do środowiska globalnego (dostępnego dla innych procesów). Zamknięta wartość z podwójnymi cudzysłowami, jeśli zawiera spacje. - aby ustawić zmienną lokalną, użyj polecenia „
varname
=value
” (lub „set
varname
=value
„). Zmienna lokalna jest dostępna tylko w tym procesie. - aby usunąć zmienną lokalną, użyj polecenia „
varname
=
„, tzn. Ustaw na pusty łańcuch (lub „unset
varname
„).
Jak ustawić zmienną środowiskową na stałe w powłoce Bash
możesz ustawić zmienną środowiskową na stałe, umieszczając polecenie export
w skrypcie startowym powłoki Bash „~/.bashrc
” (lub "~/.bash_profile
” lub „~/.profile
„) twojego katalogu domowego; lub „/etc/profile
” dla operacji systemowych. Zwróć uwagę, że pliki zaczynające się od kropki (.
) są domyślnie ukryte. Aby wyświetlić ukryte pliki, użyj polecenia”ls -a
„lub”ls -al
„.
na przykład, aby dodać katalog do zmiennej środowiskowej PATH
, dodaj następującą linię na końcu "~/.bashrc
” (lub "~/.bash_profile
” lub „~/.profile
„), gdzie ~
oznacza katalog domowy bieżącego użytkownika lub „/etc/profile
” dla wszystkich użytkowników.
// Append a directory in front of the existing PATHexport PATH=/usr/local/mysql/bin:$PATH
(dla Javy) możesz ustawić zmienne środowiskoweCLASSPATH
, dodając następującą linię. Na przykład
export CLASSPATH=.:/usr/local/tomcat/lib/servlet-api.jar
zwróć uwagę, że powłoka Bash używa dwukropka (:
) jako separatora ścieżek; podczas gdy okna używają średnika (;
).
aby odświeżyć powłokę bash, wydaj polecenie ” source
” (lub uruchom ponownie powłokę bash):
// Refresh the bash shellsource ~/.bashrc// orsource ~/.bash_profilesource ~/.profilesource /etc/profile
(uwagi) dla starszych csh (C-shell) i KSH (Korn-shell)
- użyj „
printenv
” (lub „env
„), aby wyświetlić listę wszystkich zmiennych środowiskowych. - użyj „
setenv varname value
” I „unsetenv varname
„, aby ustawić i usunąć zmienną środowiskową. - użyj „
set varname=value
” I „unset varname
„, aby ustawić i usunąć zmienną lokalną dla bieżącego procesu.
zmienna środowiskowa ścieżki
Większość Unixów i macOS używa tzw. powłoki Bash w „Terminalu”. Podczas uruchamiania programu wykonywalnego (z uprawnieniami pliku wykonywalnego) w powłoce Bash, system przeszukuje program we wszystkich katalogach wymienionych w PATH
. Jeśli programu nie można znaleźć, pojawi się następujący błąd:
abcbash: abc: command not found
zwróć uwagę, że bieżący katalog (.
) nie jest wyszukiwany, chyba że jest zawarty wPATH
. Aby uruchomić program w bieżącym katalogu, musisz podać bieżącą ścieżkę (./
), na przykład
./myProgram
aby wyświetlić listę bieżącego PATH
, wydaj polecenie:
echo $PATHpath1:path2:path3:...
Jak dodać katalog do ścieżki w systemie macOS/Linux
aby dodać katalog do istniejącego PATH
w systemie macOS/Unixes, Dodaj następujący wiersz na końcu jednego ze skryptów startowych, takich jak "~/.bashrc
~/.login
"~/.bash_profile
~/.profile
” (gdzie ~
oznacza katalog domowy bieżącego użytkownika) lub „/etc/profile
” dla wszystkich użytkowników.
// Append a directory in front of the existing PATHexport PATH=/path/to/dir:$PATH
aby odświeżyć powłokę bash, wydaj polecenie „source
” polecenie (lub Ponownie uruchom powłokę bash):
// Refresh the bash shellsource ~/.bashrc// orsource ~/.bash_profilesource ~/.profilesource /etc/profile
aby zweryfikować nowe ustawienie, uruchom CMD:
echo $PATHpath1:path2:path3:...
uwagi:
- unixes/MacOS nie przeszukuje bieżącego katalogu (
.
), chyba że umieścisz go wyraźnie wPATH
. Innymi słowy, aby uruchomić program w bieżącym katalogu, musisz podać katalog (./
), na przykład./myProgram
możesz dołączyć bieżący katalog do
PATH
, dodając tę linię w skrypcie startowym:// Append the current directory (.) in front of the existing PATHexport PATH=.:$PATH
(Windows automatycznie przeszukuje bieżący katalog (
.
) przed przeszukaniem ścieżki.) - Unixes/macOS używa dwukropka (
:
) jako separatora ścieżki; podczas gdy Windows używa średnika (;
).
Aplikacje Java i Zmienne środowiskowe PATH, CLASSPATH, JAVA_HOME
wiele problemów podczas instalacji i uruchamiania aplikacji Java jest spowodowanych nieprawidłowym ustawieniem zmiennych środowiskowych (globalnych zmiennych systemowych dostępnych dla wszystkich procesów/użytkowników działających pod systemem operacyjnym), w szczególnościPATH
CLASSPATH
I.
ścieżka
podczas uruchamiania programu z wiersza poleceń System operacyjny używa zmiennej środowiskowejPATH
do wyszukiwania programu w lokalnym systemie plików. Innymi słowy, PATH
utrzymuje listę katalogów do wyszukiwania programów wykonywalnych.
ścieżka (Dla Windows)
Po uruchomieniu programu wykonywalnego (z rozszerzeniem „.exe
.bat
” lub „.com
„) z powłoki CMD, System Windows wyszukuje program wykonywalny w bieżący katalog roboczy, a następnie wszystkie katalogi wymienione w zmiennej środowiskowej PATH
. Jeśli programu nie można znaleźć w tych katalogach, pojawi się następujący błąd:
// (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
na przykład, jeśli próbujesz użyć kompilatora Java „javac.exe
” do skompilowania pliku źródłowego Java, ale „javac.exe
” nie można znaleźć w bieżącym katalogu i wszystkich katalogach w PATH
, pojawi się następujący błąd:
javac Hello.java'javac' is not recognized as an internal or external command,operable program or batch file.
PATH
utrzymuje listę katalogów. Katalogi są oddzielone średnikiem (;
) w Windows.
dla aplikacji Java,PATH
musi zawierać następujące katalogi:
- katalog JDK „
bin
” (binarny) katalog (np. „c:\Program Files\java\jdk1.x.x\bin
„), który zawiera programy JDK, takie jak kompilator Java „javac.exe
” I Java Runtime „java.exe
„. - „
c:\windows\system32
” I „c:\windows
„, które zawierają programy i polecenia konsolowe.
katalog JDK „bin
” powinien być wymieniony przed „c:\windows\system32
” I „c:\windows
” wPATH
. Dzieje się tak, ponieważ niektóre starsze systemy Windows udostępniają w tych katalogach własne środowisko uruchomieniowe Java (które często jest przestarzałe) (spróbuj wyszukać „java.exe
” na komputerze, możesz znaleźć kilka wpisów).
aby dodać katalog (powiedzmy JDK „bin
„) do istniejącej ścieżki, sprawdź „jak dodać katalog do ścieżki”.
ścieżka (dla macOS/Linux)
Większość Unixów i macOS używa tzw. powłoki Bash w „Terminalu”. Podczas uruchamiania programu wykonywalnego (z uprawnieniami pliku wykonywalnego) w powłoce Bash, system przeszukuje program we wszystkich katalogach wymienionych w PATH
. Jeśli nie można znaleźć programu, pojawi się następujący błąd:
abcbash: abc: command not found
na przykład, jeśli próbujesz użyć kompilatora Java „javac
” do skompilowania pliku źródłowego Java, ale „javac
” nie można znaleźć na liście katalogów w PATH
, pojawi się następujący błąd:
javac Hello.javabash: javac: command not found
aby obsługiwać Aplikacje Java, musisz dołączyć do ścieżki katalog JDK „bin
” (binarny). Zobacz „jak dodać katalog do ścieżki”.
CLASSPATH
plik Java Archive (Jar)
dla ułatwienia dystrybucji, klasy Java są często archiwizowane (zipowane) razem do tak zwanego pliku JAR. Aby korzystać z pakietu Java innej firmy, należy umieścić rozproszony plik JAR w lokalizacji dostępnej dla kompilatora Java i środowiska Java Runtime.
jak znaleźć Klasy?
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: Możesz skopiować zewnętrzne pliki JAR do katalogu rozszerzenia Java (jest to usunięte i nie dotyczy JDK 10).
- Dla Windows Katalog rozszerzeń Java znajduje się pod adresem „
<JAVA_HOME>\jre\lib\ext
” (np. ”c:\Program Files\Java\jdk1.7.0_{xx}\jre\lib\ext
„). - dla macOS katalogi rozszerzeń JDK to „
/Library/Java/Extensions
” I „/System/Library/Java/Extensions
„. - Dla Ubuntu katalogi rozszerzeń JDK to „
<JAVA_HOME>/jre/lib/ext
” (np. „/usr/user/java/jdk1.7.0_{xx}/jre/lib/ext
„) I „/usr/java/packages/lib/ext
„.
lokalizacja katalogów rozszerzeń Javy jest przechowywana we właściwości systemowej Javy „
java.ext.dirs
„. Możesz wydrukować jego zawartość poprzezSystem.out.println(System.getProperty("java.ext.dirs"))
. - Dla Windows Katalog rozszerzeń Java znajduje się pod adresem „
- ścieżka przeszukiwania klas użytkowników (w skrócie, ścieżka klasy): określona w następującej kolejności:
- domyślnie ustawiona na bieżący katalog roboczy (
.
). - wpisy w zmiennej środowiskowej
CLASSPATH
, która nadpisuje wartość domyślną. - wpisy w
-cp
(lub-classpath
) opcja wiersza poleceń, która nadpisujeCLASSPATH
zmiennej środowiskowej. - opcja wiersza poleceń
-jar
, która nadpisuje wszystkie powyższe.
ścieżki klas użytkowników są przechowywane we właściwości systemu Java „
java.class.path
„.
zaleca się użycie opcji wiersza poleceń-cp
(lub-classpath
) (dostosowanej dla każdej aplikacji), zamiast ustawiania stałego środowiskaCLASSPATH
dla wszystkich aplikacji Java. IDE (takie jak Eclipse/NetBeans) zarządza-cp
-classpath
) dla każdej z aplikacji i nie opiera się na środowiskuCLASSPATH
. - domyślnie ustawiona na bieżący katalog roboczy (
nie można znaleźć klas
Jeśli środowisko uruchomieniowe Java („java
„) nie może znaleźć klas używanych w programie we wszystkich powyższych miejscach, wyda błąd „nie można znaleźć lub załadować głównej klasy xxxx” (JDK 1.7) lub „java.lang.NoClassDefFoundError ” (przed JDK 1.7).
podobnie, kompilator Javy („javac
„) spowoduje błędy kompilacji, takie jak „nie można znaleźć symbolu”, „pakiet nie istnieje”.
uwagi: Zewnętrzne biblioteki natywne („.lib
.dll
.a
.so
„) znajdują się w ścieżce we właściwości JRE „java.library.path
„, który normalnie, ale niekoniecznie zawiera wszystkie katalogi w zmiennej środowiskowej PATH
. W przeciwnym razie pojawi się błąd uruchomieniowy „java.lang.UnsatisfiedLinkError: no xxx in java.library.path
„.
zmienna środowiskowa CLASSPATH
zmienna środowiskowaCLASSPATH
może zawierać katalogi (zawierające wiele plików klas) i pliki JAR (pojedyncze archiwum plików klas). Jeśli CLASSPATH
nie jest ustawiony, jest domyślnie przypisany do bieżącego katalogu. Jeśli ustawisz CLASSPATH
, ważne jest, aby dołączyć bieżący katalog roboczy (.
). W przeciwnym razie bieżący katalog nie będzie przeszukiwany.
częstym problemem w uruchomieniu programu hello-world jest: CLASSPATH
jest ustawiony, ale nie zawiera bieżącego katalogu roboczego. W związku z tym bieżący katalog nie jest przeszukiwany, co skutkuje „Error: Could not find or load main class Hello”. Możesz po prostu usunąć CLASSPATH
i pozostawić domyślną ścieżkę klasy do bieżącego katalogu.
dla początkujących nie jest wymagane ustawienieCLASSPATH
. DomyślneCLASSPATH
ustawienie bieżącego katalogu jest wystarczające. Usuń wszystkie ustawieniaCLASSPATH
, jeśli takie istnieją. Jeśli jednak musisz ustawić CLASSPATH
, upewnij się, że dołączasz bieżący katalog '.'
.
zmienna środowiskowaPATH
(do wyszukiwania programów wykonywalnych) ma zastosowanie do wszystkich aplikacji; natomiastCLASSPATH
jest używana tylko przez Javę.
przeczytaj dokumenty JDK „ustawiającCLASSPATH
„I” Jak znajdują się Klasy ” (możesz znaleźć hiperłącza ze strony indeksu dokumentacji JDK lub googling).
zmienna środowiskowa CLASSPATH (Dla Windows)
CLASSPATH
akceptuje katalogi i pliki jar. Ścieżki są oddzielone średnikiem (;
).
przykład: wyświetlenie i zmiana CLASSPATH
dla bieżącej sesji CMD.
// Display current setting of CLASSPATHset CLASSPATH // Set CLASSPATH to the current directory and a JAR fileset CLASSPATH=.;d:\tomcat\lib\servlet-api.jar
możesz ustawićCLASSPATH
na stałe. Zobacz „Jak ustawić zmienną środowiskową”.
CLASSPATH (dla macOS/Ubuntu)
- aby ustawić
CLASSPATH
dla bieżącej sesji, wydaj to polecenie:export CLASSPATH=.:/usr/local/tomcat/bin/servlet-api.jar
użyj dwukropka ’
:
’ jako separatora ścieżki (zamiast średnika ’;
’ w Windows). - aby ustawić
CLASSPATH
na stałe, umieść powyższe polecenie eksportu w skrypcie inicjalizacji powłoki bash (.bashrc
lub.bash_profile
katalogu domowego lub/etc/profile
dla wszystkich użytkowników). Zobacz „Jak ustawić zmienną Envrionment”.
JAVA_HOME i JRE_HOME
wiele aplikacji Java (takich jak Tomcat) wymaga ustawienia zmiennej środowiskowejJAVA_HOME
do zainstalowanego katalogu JDK.
Jak ustawić JAVA_HOME w Windows
najpierw sprawdź, czy JAVA_HOME
jest już ustawiony przez uruchomienie CMD i wydanie:
set JAVA_HOME
Jeśli JAVA_HOME
nie jest ustawiony, otrzymasz „zmienną środowiskową JAVA_HOME nie zdefiniowano”. W przeciwnym razie zostanie wyświetlone bieżące ustawienie.
aby ustawić/zmienićJAVA_HOME
w Windows:
- uruchom „Panel sterowania”
- „System”
- „Zaawansowane ustawienia systemowe”
- przejdź do zakładki „Zaawansowane”
- „zmienne środowiskowe”
- Wybierz „Zmienne systemowe” (dla wszystkich użytkowników)
- aby dodać nową zmienną środowiskową „
JAVA_HOME
„:- wybierz „Nowa”
- w polu „Nazwa zmiennej” wpisz „JAVA_HOME”.
- w „wartość zmiennej” kliknij ” Przeglądaj katalog…”i przejdź do zainstalowanego katalogu JDK (np.”
C:\Program Files\Java\jdk-15.0.xx
„). - OK ⇒ OK ⇒ OK.
- aby zmienić istniejące „
JAVA_HOME
” ustawienie:- Wybierz „
JAVA_HOME
” Edit „Edytuj” - w „wartość zmiennej” kliknij „Przeglądaj katalog…”i przejdź do zainstalowanego katalogu JDK (np.”
C:\Program Files\Java\jdk-15.0.xx
„). - OK ⇒ OK ⇒ OK.
- Wybierz „
musisz ponownie uruchomić CMD, aby nowe ustawienie zaczęło działać!
aby zweryfikować nowe ustawienie, uruchom ponownie CMD:
set JAVA_HOMEJAVA_NAME=C:\Program Files\Java\jdk-13.0.1
Jak ustawić JAVA_HOME w Linux/macOS (powłoka Bash)
najpierw sprawdź, czy JAVA_HOME
jest już ustawiony przez uruchomienie terminala i wydanie:
echo $JAVA_HOME
JAVA_HOME
ma być ustawiony na zainstalowany katalog JDK. Musisz znaleźć zainstalowany katalog JDK.
znajdź zainstalowany katalog macOS i Ubuntu JDK.
dodaj następującą linię na końcu "~/.bashrc
„(lub”~/.login
„). Zwróć uwagę, że nazwa pliku zaczynająca się od kropki (.
) jest domyślnie ukryta.
Jak się un-hide dla macOS / Ubuntu.
export JAVA_HOME=/path/to/JDK-installed-directory
musisz odświeżyć powłokę bash, aby nowe ustawienia zaczęły działać. Wydaje polecenie”source
„w następujący sposób:
// Refresh the Bash Shellsource ~/.bashrc // or "source ~/.login"// Verify the new settingecho $JAVA_HOME
Windows vs.Unixes/macOS
Java jest niezależna od platformy. Klasy Java działają zarówno w systemie Windows, jak i Unix – Binary compatible.
- Unixy mają wiele powłok, takich jak nowszy
bash
I starszycsh
ksh
. Okna mają dwie powłoki: nowszącmd.exe
I starszącommand.com
. Każda powłoka ma własny zestaw poleceń, narzędzi i własny skryptowy język programowania. - nazwa zmiennej Unix jest oznaczona jako
$varname
, np.$CLASSPATH
. Windows używa%varname%
, np.%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 ⇒ …. - bieżący katalog nie jest zawarty w Uniksie
PATH
domyślnie. Aby uruchomić program w bieżącym katalogu, musisz wydać ”./programName
” gdzie „.
” oznacza bieżący katalog. Zaleca się jawne włączenie bieżącego katalogu (.
) doPATH
. Z drugiej strony, bieżący katalog jest zawarty wPATH
domyślnie. - ścieżka systemu Windows zawiera literę dysku i katalogi. Każdy dysk ma katalog główny. Używa ukośnika wstecznego
'\'
jako separatora katalogów (np. „c:\jdk1.6\bin
„). Ścieżki Linuksa nie mają litery dysku. Istnieje jeden korzeń. Unix używa ukośnika'/'
jako separatora katalogów (np. „/usr/bin/jdk1.6
„). - Windows używa średnika
';'
jako separatora ścieżek (np. w zmiennej środowiskowejPATH
), podczas gdy Unix używa dwukropka':'
. - Windows/DOS używa „
0D0AH
” (carriage-return plus line-feed) jako podziału linii (lub końca linii (EOL) lub nowej linii). Unixes / macOS używa tylko”0AH
” (line-feed).
Leave a Reply