Articles

Windows/macOS/Linux 의 환경 변수

환경 변수 란 무엇입니까?

환경 변수는 Windows,macOS 및 Linux 와 같은 운영 체제(OS)에서 실행되는 모든 프로세스/사용자가 액세스 할 수있는 글로벌 시스템 변수입니다. 환경변수는 유용한 저장 시스템 전체 가치,예를 들어,

  • PATH:가장 자주 사용되는 환경변수를 저장하는 디렉토리 목록을 검색에 대한 실행 프로그램이 있습니다.
  • OS:운영 체제.
  • COMPUTENAMEUSERNAME:점 컴퓨터는 현재 사용자 이름입니다.
  • SystemRoot:시스템 루트 디렉토리.
  • (Windows)HOMEDRIVEHOMEPATH:현재 사용자의 홈 디렉토리.

(Windows)환경 변수

Windows 의 환경 변수는 대소 문자를 구분하지 않습니다(레거시 DOS 는 대소 문자를 구분하지 않으므로). 그들은 일반적으로 지명에 대문자,단어와 결합과 함께 밑줄(_JAVA_HOME.

전시에 환경 변수들의 값

하는 목록 모든 환경변수와 그들의 가치,CMD 고 다음 명령을 실행하십시오”set“,다음과 같이

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

하려고 발행하는”setPATH라는 변수에 특히주의하십시오.

를 표시하는 특정한 변수를 사용하여 명령”set varnameecho %varname%

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

Set/Unset/변경하는 환경변수를”현재의”CMD 세션

설정(또는 변경)환경 변수, 사용령”set varname=value'='set varname=“,즉 빈 문자열로 설정하십시오.

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.

환경 변수를 사용하여

의 변수를 참조 Windows,use%varname%'%'echoecho %varname%“.

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

방법을 추가하거나 변경하려면 환경변수”영구적으로”

추가/변화하는 환경변수에 영구적으로 윈도우(사용할 수 있도록 모든 Windows’프로세스/사용자와 체재에서 부츠):

  1. Launch”Control Panel”
  2. “시스템”
  3. “고급 시스템을 설정”
  4. 스위치”고급”탭
  5. “환경변수를”
  6. 선택하”시스템 변수”(모든 사용자)
  7. 를 추가하는 새로운 환경변수:
    1. 선택”새로운”
    2. 를 입력 변수”이름”및”Value”. “값”을 입력하고 오타 오류를 만드는 대신”디렉토리 찾아보기”를 사용하는 것이 좋습니다…”또는”찾아보기 파일…”원하는 디렉토리 나 파일을 검색하는 버튼.기존 환경 변수를 변경하려면
  8. :
    1. “편집”을 선택하십시오.
    2. 새”값”을 입력하십시오. “값”을 입력하고 오타 오류를 만드는 대신”디렉토리 찾아보기”를 사용하는 것이 좋습니다…”또는”찾아보기 파일…”원하는 디렉토리 나 파일을 검색하는 버튼.

새 설정을 적용하려면 CMD 를 다시 시작해야합니다!

새 설정을 확인하려면 CMD 를 시작하십시오:

set VAR_NAMEVAR_NAME=VAR_VALUE

PATH 환경변수 Windows

시작할 경우 실행 프로그램(으로 파일의 확장”.exe.bat.com“)에서 CMD 셸 Windows 검색에 대한 실행 프로그램에서 현재 작업 디렉터리,모든 다음에 나열된 디렉토리에서PATH환경 변수입니다. 이러한 디렉토리에서 프로그램을 찾을 수 없으면 다음 오류가 발생합니다:

// (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

현재PATH,문제의 명령:

PATHPATH=path1;path1;path3;...

를 추가하는 방법을 디렉토리 경로에서 윈도우

디렉토리를 추가하려면 기존의PATHWindows:

  1. Launch”Control Panel”
  2. “시스템”
  3. “고급 시스템을 설정”
  4. 스위치”고급”탭
  5. “환경변수를”
  6. 에서”시스템 변수”(모든 사용자를 위한), 선택”Path”
  7. “편집”
  8. (에 대한 새로운 윈도우 10)테이블을 보여주는 팝 디렉토리에서 포함되는 현재의 경로를 설정⇒”새로운”⇒”찾을 수 있습니다…”경로에 추가 할 원하는 디렉토리를 선택하려면(오타 오류를 만들 것이므로 입력하지 마십시오!)⇒”위로 이동”을 반복해서 클릭하여 상단으로 이동하십시오⇒”OK”(“취소”안 함)⇒”OK”⇒”OK”.
  9. (이전 Windows 의 경우)팝업 테이블이 표시되지 않은 경우 컴퓨터를 변경할 때입니다.

새 경로 설정이 적용 되려면 CMD 를 다시 시작해야합니다!

을 확인하는 새로운 설정,실행 명령:

PATHPATH=path1;path2;path3;...

참고:

  • Windows 검색 현재 디렉터리(.PATH항목이 있습니다. (UNIXS/macOS 는 경로에 명시 적으로 포함하지 않는 한 현재 디렉토리를 검색하지 않습니다.)
  • Windows 는 세미콜론(;)을 경로 구분 기호로 사용합니다; Unixs/macOS 는 콜론(:)을 사용합니다.
  • 디렉토리 이름에 공백과 같은 특수 문자가 포함되어있는 경우(강력히 권장하지 않음)큰 따옴표로 묶으십시오.

(macOS/Linux)환경 변수

macOS/Unix 의 환경 변수는 대소 문자를 구분합니다. 글로벌 환경의 변수(모든 프로세스를 사용할 수 있습)이름은 대문자로,단어와 결합과 함께 밑줄(_JAVA_HOME. 로컬 변수(현재 프로세스에서만 사용 가능)는 소문자입니다.

Bash 쉘에서 환경 변수 사용

대부분의 결합(Ubuntu/macOS)은 소위 Bash 쉘을 사용합니다. 에서bash쉘:

  • 하는 목록 모든 환경변수를 명령을 사용하여”envprintenvset“를 사용하여 모든 지역 변수를 포함한 모든 변수를 나열 할 수도 있습니다.
  • 변수를 참조하려면$varname'$'(Windows 는%varname%를 사용합니다.
  • 특정 변수의 값을 인쇄하려면”echo $varname“명령을 사용하십시오.
  • 환경 변수를 설정하려면,명령을 사용하여”export varname=value“,설정하는 변수 및 수출하는 글로벌 환경(사용할 수 있는 다른 프로세스). 공백이 포함되어 있으면 값을 큰 따옴표로 묶습니다.
  • 설정하는 지역 변수 명령을 사용하여”varname=valueset varname=value“). 로컬 변수는이 프로세스 내에서만 사용할 수 있습니다.
  • 정 지역 변수 사용하여 명령”varname=“,i.e.,빈 문자열 설정(또는”unset varname“).

설정하는 방법 환경변수에 영구적으로 Bash 쉘

설정할 수 있는 환경 변수를 영구적으로 배치하여 있는export명령에 Bash 쉘의 시작 스크립트”~/.bashrc"~/.bash_profile~/.profile/etc/profile“시스템-넓은 작업입니다. Dot(.ls -als -al“명령을 사용하십시오.

예를 들면,디렉토리를 추가하려면을PATH "~/.bashrc"~/.bash_profile~/.profile~/etc/profile“모든 사용자를 위해.

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

(Java)설정할 수 있습니다CLASSPATH환경 변수를 추가하여 다음과 같은 라인입니다. 예를 들어,

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

주 Bash 쉘을 사용하여 콜론(:)경로로 분리하는 동안 사용하여 windows 세미콜론(;).

bash 쉘을 새로 고치려면”source“명령을 실행하십시오(또는 bash 쉘을 다시 시작하십시오):

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

(주)이전에 대한 csh(C shell)과 ksh(Korn 쉘)

  • 사용”printenvenv“)모든 환경 변수입니다.
  • 사용”setenv varname valueunsetenv varname“설정하고 설정된 환경 변수입니다.
  • 사용”set varname=valueunset varname“설정하고 설정된 지역 변수를 위해 현재의 과정입니다.

경로 환경 변수

대부분의 유닉스와 macOS 는”터미널”에서 소위 Bash 쉘을 사용합니다. 시작할 경우 실행 프로그램(으로 파일의 실행 권한)에서 Bash shell,시스템 검색 프로그램에서 모든 디렉토리에 나열된PATH. 는 경우 프로그램을 찾을 수 없습니다,당신은 다음과 같은 오류가:

abcbash: abc: command not found

사용할 수 있으므로 주의해 주십시오 현재 디렉터리(.PATH./),예를 들어,

./myProgram

현재PATH,문제의 명령:

echo $PATHpath1:path2:path3:...

를 추가하는 방법을 디렉토리 경로에 macOS/Linux

디렉토리를 추가하려면 기존의PATH에 macOS/Unixes,다음을 추가합니다 라인의 끝에서 하나의 시작 스크립트와 같은 "~/.bashrc~/.login"~/.bash_profile~/.profile~/etc/profile“모든 사용자를 위해.

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

새로 bash shell,문제는”source“명령(또는 다시 시작 bash 쉘):

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

을 확인하는 새로운 설정,실행 CMD:

echo $PATHpath1:path2:path3:...

참고:

  • 유닉스/맥 os 검색하지 않은 현재 디렉터리(.PATH./
    ./myProgram

    PATH

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

    (Windows 검색 현재 디렉터리(.)전에 자동으로 찾습니다.)

  • 유닉스/맥 os 사용하여 콜론(:;).

Java 응용 프로그램과 환경 변수,경로 클래스 경로,JAVA_HOME

많은 문제가에서 설치 및 실행의 Java 응용 프로그램에 의해 발생하는 잘못된 설정한 환경변수(글로벌 시스템 변수를 모두 사용할 수 있는 프로세스/사용자에서 실행 되는 운영 체제),특히PATHCLASSPATHJAVA_HOME.

경우 실행 프로그램에서 명령행,운영체제 시스템을 사용하는PATHPATH는 실행 가능한 프로그램을 검색하기위한 디렉토리 목록을 유지 관리합니다.

경로(For Windows)

시작할 경우 실행 프로그램(으로 파일의 확장”.exe.bat.com“)에서 CMD shell,Windows 검색에 대한 실행 프로그램에서 현재 작업 디렉토리 다음에 모든 목록에 있는 디렉터리PATH환경 변수입니다. 이러한 디렉토리에서 프로그램을 찾을 수 없으면 다음 오류가 발생합니다:

// (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

경우,예를 들어,당신은 당신을 사용하려고 Java Compiler”javac.exe“을 컴파일하려면 Java 소스 파일,그러나”javac.exePATH,당신은 다음과 같은 오류가 나타납니다.

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

PATH을 유지하는 디렉토리 목록. 디렉토리는 Windows 에서 세미콜론(;)으로 구분됩니다.

Java 응용 프로그램의 경우PATH에는 다음 디렉토리가 포함되어야합니다:

  • JDK 의”bin“(binary)디렉터리(예:”c:\Program Files\java\jdk1.x.x\bin“),을 포함하는 JDK 프로그램 Java 와 같이 컴파일러는”javac.exejava.exe“.
  • c:\windows\system32c:\windows“콘솔 프로그램 및 명령을 포함합니다.

JDK 의”binc:\windows\system32c:\windows“앞에 나열되어야합니다. 이 때문에 일부 오래된 Windows 시스템을 제공하는 자신의 자바 런타임(자주 오래된)에서 이러한 디렉터리(시도 검색에 대한”java.exe“컴퓨터에서 찾을 수 있습니다 몇 가지 항목).

를 추가하는 디렉터리(말하는 JDK 의”bin“)기존 경로를 확인”추가하는 방법을 디렉토리 경로”.

경로(macOS/Linux 용)

대부분의 유닉스와 macOS 는”터미널”에서 소위 Bash 쉘을 사용합니다. 시작할 경우 실행 프로그램(으로 파일의 실행 권한)에서 Bash shell,시스템 검색 프로그램에서 모든 디렉토리에 나열된PATH. 는 경우 프로그램을 찾을 수 없습니다,당신은 다음과 같은 오류가:

abcbash: abc: command not found

경우,예를 들어,당신은 당신을 사용하려고 Java Compiler”javac“을 컴파일하려면 Java 소스 파일 그러나”javacPATH,당신은 다음과 같이 나타납니다류:

javac Hello.javabash: javac: command not found

Java 애플리케이션을 지원하십시오,당신은 필요 포함하는 JDK 의”bin“(binary)디렉토리 경로. “경로에 디렉토리를 추가하는 방법”을 참조하십시오.

CLASSPATH

Java 아카이브(JAR)파일

의 편의를 위해 배포,Java 클래스는 종종관(zip)을 함께 소위 JAR 파일입니다. 타사 Java 패키지를 사용하려면 Java 컴파일러와 Java 런타임에서 사용할 수 있는 위치에 분산 JAR 파일을 배치해야 합니다.

클래스가 어떻게 발견됩니까?

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: 외부 JAR 파일을 Java 확장 디렉토리에 복사 할 수 있습니다(jdk10 에서는 제거되고 적용되지 않음).
    • Windows 의 경우 Java 확장 디렉토리는”<JAVA_HOME>\jre\lib\extc:\Program Files\Java\jdk1.7.0_{xx}\jre\lib\ext“)에 있습니다.
    • macOS 의 경우 JDK 확장 디렉토리는”/Library/Java/Extensions/System/Library/Java/Extensions“입니다.
    • Ubuntu 의 경우 JDK 확장 디렉토리는”<JAVA_HOME>/jre/lib/ext/usr/user/java/jdk1.7.0_{xx}/jre/lib/ext/usr/java/packages/lib/ext“입니다.

    Java 의 확장 디렉토리의 위치는 Java 의 시스템 속성”java.ext.dirsSystem.out.println(System.getProperty("java.ext.dirs"))를 통해 해당 내용을 인쇄 할 수 있습니다.

  3. 사용자는 클래스 경로(즉,클래스 경로):다음 순서에 따라 결정됩:
    1. 기본값이 현재 작업 디렉터리(.).
    2. 기본값을 재정의하는CLASSPATH환경 변수의 항목.
    3. 항목-cp-classpathCLASSPATH환경 변수입니다.
    4. 런타임 명령 줄 옵션-jar는 위의 모든 것을 무시합니다.

    사용자 클래스 경로는 Java System property”java.class.path“에 보관됩니다.
    그것을 사용하는 것이 좋-cp-classpathCLASSPATH환경에 대한 모든 매핑을 사용할 수 있습니다. IDE(과 같은 Eclipse/NetBeans)리-cp-classpathCLASSPATH환경입니다.

을 찾을 수 없는 클래스가

경우에는 자바 런타임(“java“)찾을 수 없습니다 클래스에서 사용되는 프로그램에서는 위의 모든 장소,그것은 오류를 발행”수지 또는 부하를 기본 클래스 xxxx”JDK(1.7)또는”java.랭.NoClassDefFoundError”(JDK1.7 이전).

마찬가지로,Java Compiler(“javac“)를 문제를 컴파일한 오류”과 같은 기호는 찾을 수 없습니다”,”패키지에는”존재하지 않.

노트: 외부 네이티브 라이브러리(“.lib.dll.a.so“)에서 찾을 수 있 경로에 JRE 의 속성”java.library.pathPATHjava.lang.UnsatisfiedLinkError: no xxx in java.library.path“가 발생합니다.

클래스 경로 환경 변수를

CLASSPATH환경 변수를 포함할 수 있었 디렉토리(을 포함하는 많은 클래스 파일)및 JAR 파일(단일 파일의 아카이브 클래스 파일). CLASSPATHCLASSPATH.). 그렇지 않으면 현재 디렉토리가 검색되지 않습니다.

hello-world 프로그램을 실행하는 일반적인 문제는 다음과 같습니다: CLASSPATH가 설정되었지만 현재 작업 디렉토리는 포함하지 않습니다. 따라서 현재 디렉토리가 검색되지 않아”오류:주 클래스 Hello 를 찾거나로드 할 수 없습니다”라는 결과가 나타납니다. 간단히CLASSPATH를 제거하고 클래스 경로를 현재 디렉토리로 기본값으로 둘 수 있습니다.

초보자의 경우 명시 적CLASSPATHCLASSPATHCLASSPATHCLASSPATH'.'.

PATHCLASSPATH은 사용해서 자바니다.

읽 JDK 문서”로 설정하는CLASSPATH“및”클래스가 어떻게 발견되”(당신을 찾을 수 있습니다 하이퍼링크에서의 인덱스 페이지 JDK 문서,인터넷 검색).

CLASSPATH 환경 변수(Windows 용)

CLASSPATH디렉토리 및 jar 파일을 허용합니다. 경로 항목은 세미콜론(;)으로 구분됩니다.

예:현재 CMD 세션에 대해CLASSPATH표시 및 변경.

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

CLASSPATH를 영구적으로 설정할 수 있습니다. “환경 변수 설정 방법”을 참조하십시오.

CLASSPATH(macOS/Ubuntu 의 경우)
  1. 현재 세션에 대해CLASSPATH
    export CLASSPATH=.:/usr/local/tomcat/bin/servlet-api.jar

    :;‘에서 윈도우).

  2. 설정하는CLASSPATH영구적으로,장소는 위의 수출에서 명령 bash shell 초기화 스크립트(.bashrc.bash_profile/etc/profile모든 사용자를 위한). “Envrionment 변수를 설정하는 방법”을 참조하십시오.

JAVA_HOME 및 JRE_HOME

많은 Java 응용 프로그램(예:Tomcat)필요한 환경 변수를JAVA_HOME설정할 수 있는 JDK 설치 디렉토리에 있습니다.

설정하는 방법 JAVA_HOME Windows

는지 확인JAVA_HOME은 이미 설정에 의해 시작 CMD 및 문제:

set JAVA_HOME

경우JAVA_HOME설정하지 않을 받을 것이다”환경변수 JAVA_HOME”정의되지 않았습니다. 그렇지 않으면,현재 설정이 표시됩니다.Windows 에서

설정/변경JAVA_HOME:

  1. Launch”Control Panel”
  2. “시스템”
  3. “고급 시스템을 설정”
  4. 스위치”고급”탭
  5. “환경변수를”
  6. 선택하”시스템 변수”(모든 사용자를 위한)
  7. 를 추가하는 새로운 환경변수”JAVA_HOME“:
    1. 선택”새로운”
    2. “에서 변수”이름을 입력하”JAVA_HOME”.
    3. “변수 값”에서”디렉토리 찾아보기”를 클릭하십시오…”그리고 JDK 설치된 디렉토리(예:”C:\Program Files\Java\jdk-15.0.xx“)로 이동하십시오.
    4. OK⇒OK⇒OK.
  8. 을 변경하는 기존의”JAVA_HOME“설정:
    1. Select”JAVA_HOME“⇒”편집”
    2. 에서”변수 값을”,”찾아보기 디렉토리에 있습니다…”그리고 JDK 설치된 디렉토리(예:”C:\Program Files\Java\jdk-15.0.xx“)로 이동하십시오.
    3. OK⇒OK⇒OK.

새 설정을 적용하려면 CMD 를 다시 시작해야합니다!

새 설정을 확인하려면 CMD 를 다시 시작하십시오:

set JAVA_HOMEJAVA_NAME=C:\Program Files\Java\jdk-13.0.1
설정하는 방법 JAVA_HOME 에서 리눅스/맥 os(Bash 쉘)

는지 확인JAVA_HOME은 이미 설정에 의해 시작 터미널 및 문제점:

echo $JAVA_HOME

JAVA_HOME설정할 수 있도록 되어 있는 JDK 설치 디렉토리에 있습니다. JDK 설치된 디렉토리를 찾아야합니다.

macOS 및 Ubuntu JDK 설치된 디렉토리를 찾으십시오.

"~/.bashrc~/.login“)의 끝에 다음 줄을 추가하십시오. Dot(.)로 시작하는 파일 이름은 기본적으로 숨겨져 있습니다.

macOS/Ubuntu 에 대해 숨기기를 해제하는 방법.

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

새 설정이 적용 되려면 bash 셸을 새로 고쳐야합니다. 문제는”source“다음과 같이 명령:

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

Windows 대 Unixes/perl

자바 플랫폼 독립적입니다. 자바 클래스는 윈도우뿐만 아니라 유닉스에서 실행-이진 호환.

  • 유닉은 많은 껍질과 같은 새로운bashcshksh. Windows 에는 최신cmd.execommand.com의 두 셸이 있습니다. 각 셸에는 자체 명령,유틸리티 및 자체 스크립팅 프로그래밍 언어 세트가 함께 제공됩니다.예를 들어,
  • 유닉스의 변수 이름은$varname$CLASSPATH로 표시됩니다. Windows 는%varname%,e,g.,%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 ⇒ ….
  • 현재 디렉토리는 Unix 의PATH./programName..PATH명시 적으로 포함하는 것이 좋습니다. 반면에 현재 디렉토리는 Windows’PATH암시 적으로 포함됩니다.
  • Windows 의 경로에는 드라이브 문자 및 디렉토리가 포함됩니다. 각 드라이브에는 루트 디렉토리가 있습니다. 백 슬래시'\'c:\jdk1.6\bin“). 리눅스의 경로에는 드라이브 문자가 없습니다. 단일 루트가 있습니다. Unix 는 순방향 슬래시'/'/usr/bin/jdk1.6“).
  • 윈도우를 사용 세미콜론';'PATH':'.
  • Windows/DOS 는 줄 바꿈(또는 줄 끝(EOL)또는 줄 바꿈)으로”0D0AH“(캐리지 리턴 플러스 줄 바꿈)를 사용합니다. Unixs/macOS 는”0AH“(라인 피드)만 사용합니다.