TL; DR
숙련 된 독자 :
- Java 경로를 찾으십시오. 다음과 같이 보입니다 :
C:\Program Files\Java\jdkxxxx\bin\
- 시작 메뉴에서 "환경 변수"를 검색하여 옵션 대화 상자를 엽니 다.
- 검사하십시오
PATH
. 오래된 Java 경로를 제거하십시오.
- 에 새 Java 경로를 추가하십시오
PATH
.
- 편집
JAVA_HOME
.
- 콘솔 / IDE를 닫았다가 다시 엽니 다.
어서 오십시오!
Java 초보자가 직면 한 가장 악명 높은 기술 문제 중 하나 인 'xyz' is not recognized as an internal or external command...
오류 메시지 가 발생했습니다.
간단히 말해서 Java를 올바르게 설치하지 않았습니다 . Windows에서 Java 설치를 완료하려면 몇 가지 수동 단계가 필요합니다. JDK 업그레이드 후를 포함하여 Java를 설치 한 후에는 항상이 단계를 수행해야합니다.
환경 변수 PATH
(이미 이미 이해 한 경우 다음 세 섹션을 건너 뛰십시오.)
을 실행할 때 javac HelloWorld.java
cmd javac.exe
는 위치를 결정해야합니다 . 이것은 PATH
환경 변수 인으로 수행됩니다 .
환경 변수는 특수 키 - 값 쌍 (예입니다 windir=C:\WINDOWS
). 대부분은 운영 체제와 함께 제공되며 일부는 적절한 시스템 기능을 위해 필요합니다. 이들의 목록은 시작할 때 모든 프로그램 (cmd 포함)으로 전달됩니다. Windows에서 , 거기에 두 가지 유형 : 사용자 환경 변수 및 시스템 환경 변수는 .
다음과 같이 환경 변수를 볼 수 있습니다.
C:\>set
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\craig\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
...
가장 중요한 변수는 PATH
입니다. 로 구분 된 경로 목록입니다 ;
. cmd에 명령을 입력하면 목록의 각 디렉토리에서 일치하는 실행 파일이 있는지 검사합니다.
내 컴퓨터에서 PATH
:
C:\>echo %PATH%
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPower
Shell\v1.0\;C:\ProgramData\Microsoft\Windows\Start Menu\Programs;C:\Users\craig\AppData\
Roaming\Microsoft\Windows\Start Menu\Programs;C:\msys64\usr\bin;C:\msys64\mingw64\bin;C:\
msys64\mingw32\bin;C:\Program Files\nodejs\;C:\Program Files (x86)\Yarn\bin\;C:\Users\
craig\AppData\Local\Yarn\bin;C:\Program Files\Java\jdk-10.0.2\bin;C:\ProgramFiles\Git\cmd;
C:\Program Files\Oracle\VirtualBox;C:\Program Files\7-Zip\;C:\Program Files\PuTTY\;C:\
Program Files\launch4j;C:\Program Files (x86)\NSIS\Bin;C:\Program Files (x86)\Common Files
\Adobe\AGL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program
Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\iCLS Client\;
C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files
(x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\iCLS
Client\;C:\Users\craig\AppData\Local\Microsoft\WindowsApps
내부 명령 이 아닌 javac HelloWorld.java
것을 인식하면 cmd 를 실행 하면 시스템 다음에 사용자가 검색 됩니다 . 기계적으로 목록의 모든 디렉토리를 입력하고 확인하는 경우 , , , 등이 존재한다. 를 찾으면 실행합니다. 그렇지 않으면 인쇄javac
PATH
PATH
javac.com
javac.exe
javac.bat
javac
'javac' is not recognized as an internal or external command, operable program or batch file.
Java 실행 파일 디렉토리를에 추가해야합니다 PATH
.
JDK 대 JRE
(이미 이미 이해 한 경우이 섹션을 건너 뛰십시오.)
Java를 다운로드 할 때 다음 중에서 선택할 수 있습니다.
- 자바 런타임 환경 에 필요한 도구가 포함되어 있습니다 (JRE)는 자바 프로그램을 실행,하지만 하지 새로 컴파일 -이 포함되어
java
있지만 javac
.
- 자바 개발 키트 를 모두 포함 (JDK),
java
및 javac
기타 개발 도구의 호스트와 함께. JDK는 JRE의 상위 집합입니다.
JDK를 설치 했는지 확인해야합니다 . JRE 만 설치 한 경우 javac
하드 드라이브에 Java 컴파일러가 설치되어 있지 않으므로 실행할 수 없습니다 . Windows 프로그램 목록을 확인하고 Java 패키지 이름에 "Development Kit"라는 단어가 포함되어 있는지 확인하십시오.
사용하지 마십시오 set
(어쨌든 계획하지 않은 경우이 섹션을 건너 뛰십시오.)
다른 답변은 다음과 같이 변형을 권장합니다.
C:\>:: DON'T DO THIS
C:\>set PATH=C:\Program Files\Java\jdk1.7.0_09\bin
그거 하지마. 이 명령에는 몇 가지 주요 문제가 있습니다.
- 이 명령은 다른 모든 항목 을 지우고
PATH
Java 경로로 바꿉니다. 이 명령을 실행 한 후 다양한 다른 명령이 작동하지 않을 수 있습니다.
- Java 경로 가 아닐 수도
C:\Program Files\Java\jdk1.7.0_09\bin
있습니다. JDK의 최신 버전이 거의있을 것입니다.이 경로는 다른 경로를 갖습니다.
- 새로운 것은 현재 cmd 세션
PATH
에만 적용됩니다 . set
명령 프롬프트를 열 때마다 명령 을 다시 입력해야합니다 .
포인트 # 1과 # 2는이 약간 더 나은 버전으로 해결할 수 있습니다.
C:\>:: DON'T DO THIS EITHER
C:\>set PATH=C:\Program Files\Java\<enter the correct Java folder here>\bin;%PATH%
그러나 그것은 일반적으로 나쁜 생각입니다.
자바 경로 찾기
올바른 방법은 Java를 설치 한 위치를 찾는 것부터 시작합니다. 이것은 Java 설치 방법에 따라 다릅니다 .
exe 인스톨러
설치 프로그램을 실행하여 Java를 설치했습니다. Oracle 설치 프로그램은 Java 버전을 C:\Program Files\Java\
(또는 C:\Program Files (x86)\Java\
) 아래에 배치 합니다. 파일 탐색기 또는 명령 프롬프트를 사용하여 해당 디렉토리로 이동하십시오.
각 하위 폴더는 Java 버전을 나타냅니다. 하나만 있으면 찾을 수 있습니다. 그렇지 않으면 최신 버전처럼 보이는 것을 선택하십시오. 폴더 이름이로 시작해야합니다 jdk
(반대 jre
). 디렉토리를 입력하십시오.
그런 다음 해당 bin
디렉토리를 입력하십시오 .
이제 올바른 디렉토리에 있습니다. 경로를 복사하십시오. 파일 탐색기에서 주소 표시 줄을 클릭하십시오. 명령 프롬프트에 있으면 프롬프트를 복사 하십시오.
결과 Java 경로는 (따옴표없이) 형식이어야합니다.
C:\Program Files\Java\jdkxxxx\bin\
압축 파일
JDK가 포함 된 .zip을 다운로드했습니다. 방해가되지 않는 임의의 장소로 추출하십시오. C:\Java\
허용되는 선택입니다.
그런 다음 그 bin
안의 폴더를 찾으 십시오.
이제 올바른 디렉토리에 있습니다. 경로를 복사하십시오. 이것이 Java 경로입니다.
경로를 무효화 할 수 있으므로 폴더를 이동하지 마십시오.
설정 대화 상자를 엽니 다
편집 대화 상자 PATH
입니다. Windows 버전, UI 설정 및 시스템 구성이 엉망인 방법에 따라 해당 대화 상자를 여는 방법은 여러 가지가 있습니다.
다음 중 일부를 시도하십시오.
- 시작 메뉴 / 작업 표시 줄 검색 상자» "환경 변수"검색
- 승리 + R»
control sysdm.cpl,,3
- Win + R»
SystemPropertiesAdvanced.exe
»환경 변수
- 파일 탐색기»주소 표시 줄에 입력
Control Panel\System and Security\System
»고급 시스템 설정 (맨 왼쪽, 사이드 바)»환경 변수
- 데스크탑»이 PC를 마우스 오른쪽 버튼으로 클릭»속성»고급 시스템 설정»환경 변수
- 시작 메뉴»컴퓨터를 마우스 오른쪽 버튼으로 클릭»속성»고급 시스템 설정»환경 변수
- 제어판 (아이콘 모드)»시스템»고급 시스템 설정»환경 변수
- 제어판 (범주 모드)»시스템 및 보안»시스템»고급 시스템 설정»환경 변수
- 데스크톱»내 컴퓨터를 마우스 오른쪽 버튼으로 클릭»고급»환경 변수
- 제어판»시스템»고급»환경 변수
이 중 하나라도 올바른 설정 대화 상자로 이동해야합니다.
Windows 10을 사용하는 경우 Microsoft는 편집 할 수있는 새롭고 멋진 UI 를 제공 PATH
합니다. 그렇지 않으면, 당신은 PATH
한 줄짜리 텍스트 상자에 압착 된 전체 세미콜론으로 장식 된 영광 을 보게 될 것 입니다. 시스템을 손상시키지 않고 필요한 편집 작업을 수행하기 위해 최선을 다하십시오.
깨끗한 PATH
을보십시오 PATH
. PATH
사용자 변수와 시스템 환경 변수로 인해 거의 두 가지 변수 가 있습니다 . 둘 다 봐야합니다.
다른 Java 경로를 확인 하고 제거하십시오. 그들의 존재는 모든 종류의 갈등을 일으킬 수 있습니다. 예를 들어, JRE 8 및 JDK 11 PATH
이 순서대로 javac
있는 경우 Java 11 컴파일러를 호출하여 버전 55 .class
파일 을 작성 하지만 java
Java 8 JVM을 호출합니다 (최대 버전 52 만 지원함). 당신이 경험하게 될 것입니다 지원되지 않는 버전의 오류를 모든 프로그램을하지 컴파일 할 수 있어야하고, 실행합니다.) 회피 당신이 단 하나 개의 자바 경로가함으로써 이러한 문제 PATH
. 그리고 사용하는 동안 오래된 Java 버전 도 제거 할 수 있습니다. 그리고 당신은 기억 할 필요가 없습니다 JDK가와 JRE 모두.
당신이있는 경우 C:\ProgramData\Oracle\Java\javapath
, 뿐만 아니라 그 제거 . Oracle 은 항상 최신 Java 설치를 가리키는 기호 링크 를 작성하여 업그레이드 후 Java 경로 중단 문제를 해결하려고했습니다 . 불행히도 종종 잘못된 위치를 가리 키거나 단순히 작동하지 않습니다 . 이 항목을 제거하고 Java 경로를 수동으로 관리하는 것이 좋습니다.
이제 일반 하우스 키핑을 수행 할 수있는 좋은 기회이기도합니다 PATH
. PC에 소프트웨어가 더 이상 설치되어 있지 않은 경로가 있으면 제거 할 수 있습니다. 주위의 경로 순서를 섞을 수도 있습니다 (그러한 것들에 관심이 있다면).
추가 PATH
이제 3 단계 전에 찾은 Java 경로를 가져 와서 시스템에 배치하십시오 PATH
.
목록에서 새 경로의 위치는 중요하지 않습니다. 끝에 배치하는 것이 좋습니다.
Windows 10 이전 버전 UI를 사용중인 경우 세미콜론을 올바르게 배치했는지 확인하십시오. 목록의 모든 경로를 구분하는 정확히 하나 있어야합니다.
여기서 할 말이 많지 않습니다. 경로를 추가하고 PATH
확인을 클릭하십시오.
세트 JAVA_HOME
당신이 그것을하는 동안뿐만 아니라 설정할 JAVA_HOME
수 있습니다. 이것은 Java 경로도 포함해야하는 다른 환경 변수입니다. 널리 사용되는 Java 빌드 시스템 인 Maven 및 Gradle을 포함하여 많은 Java 및 비 Java 프로그램 은 올바르게 설정되지 않으면 오류를 발생시킵니다.
JAVA_HOME
존재하지 않는 경우 새 시스템 환경 변수로 작성하십시오. 디렉토리가없는 Java 디렉토리의 경로로 설정하십시오 ( bin/
예 :) C:\Program Files\Java\jdkxxxx\
.
JAVA_HOME
Java를 업그레이드 한 후에도 편집해야합니다 .
명령 프롬프트를 닫았다가 다시 엽니 다
을 수정했지만 PATH
cmd를 포함하여 실행중인 모든 프로그램은 이전 버전 만 참조하십시오 PATH
. 모든 환경 변수 목록은 프로그램이 실행될 때만 프로그램에 복사되기 때문입니다. 이후에는 캐시 된 사본 만 참조합니다.
cmd 환경 변수 를 새로 고치는 좋은 방법은 없으므로 명령 프롬프트를 닫았다가 다시여십시오. IDE를 사용하는 경우 IDE를 닫았다가 다시여십시오.
또한보십시오