Articles

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.
  • COMPUTENAMEUSERNAME: przechowuje komputer i bieżącą nazwę użytkownika.
  • SystemRoot: katalog główny systemu.
  • (Windows)HOMEDRIVEHOMEPATH: 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):

  1. uruchom „Panel sterowania”
  2. „System”
  3. „Zaawansowane ustawienia systemowe”
  4. przejdź do zakładki „Zaawansowane”
  5. „zmienne środowiskowe”
  6. Wybierz „Zmienne systemowe” (dla wszystkich użytkowników)
  7. aby dodać nową zmienną środowiskową:
    1. wybierz „Nowa”
    2. 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.
  8. aby zmienić istniejącą zmienną środowiskową:
    1. wybierz „Edytuj”
    2. 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:

  1. uruchom „Panel sterowania”
  2. „System”
  3. „Zaawansowane ustawienia systemowe”
  4. przejdź do zakładki „Zaawansowane”
  5. „zmienne środowiskowe”
  6. pod „Zmienne systemowe” (dla wszystkich użytkowników) wybierz „ścieżka”
  7. „Edycja”
  8. (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”.
  9. (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ściPATHCLASSPATH 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:

  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: 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ść poprzez System.out.println(System.getProperty("java.ext.dirs")).

  3. ścieżka przeszukiwania klas użytkowników (w skrócie, ścieżka klasy): określona w następującej kolejności:
    1. domyślnie ustawiona na bieżący katalog roboczy (.).
    2. wpisy w zmiennej środowiskowejCLASSPATH, która nadpisuje wartość domyślną.
    3. wpisy w-cp (lub-classpath) opcja wiersza poleceń, która nadpisujeCLASSPATH zmiennej środowiskowej.
    4. 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 środowisku CLASSPATH.

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)
  1. 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).

  2. aby ustawićCLASSPATHna stałe, umieść powyższe polecenie eksportu w skrypcie inicjalizacji powłoki bash (.bashrclub.bash_profilekatalogu 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:

  1. uruchom „Panel sterowania”
  2. „System”
  3. „Zaawansowane ustawienia systemowe”
  4. przejdź do zakładki „Zaawansowane”
  5. „zmienne środowiskowe”
  6. Wybierz „Zmienne systemowe” (dla wszystkich użytkowników)
  7. aby dodać nową zmienną środowiskową „JAVA_HOME„:
    1. wybierz „Nowa”
    2. w polu „Nazwa zmiennej” wpisz „JAVA_HOME”.
    3. w „wartość zmiennej” kliknij ” Przeglądaj katalog…”i przejdź do zainstalowanego katalogu JDK (np.” C:\Program Files\Java\jdk-15.0.xx„).
    4. OK ⇒ OK ⇒ OK.
  8. aby zmienić istniejące „JAVA_HOME” ustawienie:
    1. Wybierz „JAVA_HOME” Edit „Edytuj”
    2. w „wartość zmiennej” kliknij „Przeglądaj katalog…”i przejdź do zainstalowanego katalogu JDK (np.” C:\Program Files\Java\jdk-15.0.xx„).
    3. OK ⇒ OK ⇒ OK.

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 nowszybash I starszycshksh. 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 (.) do PATH. Z drugiej strony, bieżący katalog jest zawarty w PATH 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).