javac이 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않음
Java 프로그램을 컴파일하는 동안 오류가 발생했어.
Windows(윈도우)에 있으며(이 문제는 Windows별 문제임) 최신 JDK가 설치되어 있음
나는 그 문제를 해결하기 위해 노력했다.PATH
가변적이지만 오류는 계속된다.
콘솔 출력:
C:\>set path=C:Program Files (x86)\Java\jdk1.7.0\bin
C:\>javac Hello.java
'javac' is not recognized as an internal or external command,
operable program or batch file.
TL;DR
경험이 풍부한 독자의 경우:
- Java 로:
C:\Program Files\Java\jdkxxxx\bin\
- 시작 메뉴는 옵션 대화상자를 열기 위해 "환경 변수"를 검색한다.
- 조사하다
PATH
이전 Java 경로를 제거하십시오. - 를 Java 로에 한다.
PATH
. - 편집
JAVA_HOME
. - 콘솔/IDE를 닫고 다시 여십시오.
환영합니다!
당신은 자바 초보자들이 직면하고 있는 가장 악명 높은 기술적 문제들 중 하나를 접했다:'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 포함)에 그 목록이 전달된다.윈도에는 사용자 환경변수와 시스템 환경변수의 두 종류가 있다.
다음과 같은 환경 변수를 볼 수 있다.
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
...
가장 중요한 변수는 입니다.로 구분된 경로 목록이다.;
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
내부 명령이 아닌 경우, 사용자가 시스템을 검색하십시오.그것은 목록에 있는 모든 디렉토리를 기계적으로 입력하고 , , , , 등이 있는지 확인한다.찾을 때javac
그것은 그것을 운영한다.그렇지 않으면 인쇄한다.'javac' is not recognized as an internal or external command, operable program or batch file.
Java 실행 파일 디렉터리를 다음에 추가해야 함PATH
.
JDK 대 JRE
(이미 이 내용을 이해한 경우 이 섹션을 건너뛰십시오.)
Java 다운로드 시 다음 중 하나를 선택하십시오.
- Java 프로그램을 실행하는 데 필요한 도구를 포함하지만 새로운 도구를 컴파일하지 않는 JRE(Java Runtime Environment)는 다음과 같다.
java
그러나 그렇지 않다javac
. - JDK(Java Development Kit)는 두 가지 기능을 모두 포함하며
java
그리고javac
과 함께, 은 다도 함께도 함께.JDK는 JRE의 초대칭이다.
JDK를 설치했는지 확인하십시오.JRE만 설치한 경우 실행할 수 없음javac
프로그램 목록을 라는 단어가 되어 있는지 Windows 프로그램 목록을 확인하고 Java 패키지 이름에 "개발 키트"라는 단어가 포함되어 있는지 확인하십시오.
사용하지 마십시오.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의 새로운 버전을 거의 확실히 가지고 있을 것이다. - 새로운
PATH
현재 cmd 세션에만 적용된다.당신은 다시 들어가야 할 것이다.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를 설치한 위치를 찾는 것에서부터 시작된다.이는 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\
Zip 파일
있는 임의의 장소에 압축을 푸십시오. JDK가 는 .ziplossohyden 입니다. 방해가 되지 않는 임의의 장소에 압축을 푸십시오.C:\Java\
받아들일 수 있는 선택이다.
다음 그따위를 .bin
그 안의 어딘가에 폴더가 있다.
당신은 지금 올바른 디렉토리에 있다.경로를 따라해이것이 자바 경로다.
경로를 무효화할 수 있으므로 폴더를 이동하지 마십시오.
설정 대화상자 열기
그것은 편집하기 위한 대화 상자다.PATH
Windows 버전, UI 설정 및 시스템 구성에 따라 이 대화상자에 접근할 수 있는 많은 방법이 있다.
다음 중 일부를 사용해 보십시오.
- 시작 메뉴/태스크바 검색 상자 » "환경 변수" 검색
- Win + R »
control sysdm.cpl,,3
- Win + R »
SystemPropertiesAdvanced.exe
» 환경 변수 - 파일 탐색기 » 주소 표시줄에 입력
Control Panel\System and Security\System
» 고급 시스템 설정(맨 왼쪽, 사이드바) » 환경 변수 - 데스크톱 » 이 PC 마우스 오른쪽 버튼 클릭 » 속성 » 고급 시스템 설정 » 환경 변수
- 시작 메뉴 » 마우스 오른쪽 버튼 컴퓨터 » 속성 » 고급 시스템 설정 » 환경 변수
- 제어판(아이콘 모드) » 시스템 » 고급 시스템 설정 » 환경 변수
- 제어판(범주 모드) » 시스템 및 보안 » 시스템 » 고급 시스템 설정 » 환경 변수
- 데스크톱 » 내 컴퓨터 마우스 오른쪽 버튼 클릭 » 고급 » 환경 변수
- 제어판 » 시스템 » 고급 » 환경 변수
이 중 어느 것이든 올바른 설정 대화상자로 이동하십시오.
만약 당신이 윈도우 10에 있다면, 마이크로소프트는 당신을 편집하기 위한 멋진 새로운 UI로 축복해 주었다.PATH
. 그렇지 않으면, 당신은 보게 될 것이다.PATH
세미콜론으로 가득 찬 영광 속에, 한 줄짜리 텍스트 상자에 짜넣어.시스템을 손상시키지 않고 필요한 편집을 위해 최선을 다하십시오.
깨끗하다PATH
보다PATH
확실히 의 넌의 가가 가를 있어.PATH
변수(사용자 대 시스템 환경 변수 때문에).둘 다 봐야죠.
다른 Java 경로를 확인한 후 제거하십시오.그들의 존재는 온갖 갈등을 일으킬 수 있다.(예를 들어, JRE 8과 JDK 11이 있는 경우)PATH
, 그러면 그 순서대로.javac
55 Java 11 컴일day출 하하하 55를 생하함을 .class
파일, 그러나java
최대 버전 52만 지원하는 Java 8 JVM을 호출하여 지원되지 않는 버전 오류가 발생하고 프로그램을 컴파일 및 실행할 수 없음)Java 경로가 하나만 있는지 확인하여 이러한 문제를 회피하십시오.PATH
. 그리고 당신이 그것을 하는 동안, 당신은 오래된 Java 버전도 제거하는 것이 좋을 것이다.그리고 당신은 JDK와 JRE를 둘 다 가질 필요가 없다는 것을 기억하라.
있다면C:\ProgramData\Oracle\Java\javapath
그것 또한 제거해라.오라클은 항상 최신 Java 설치를 가리키는 심볼 링크를 만들어 업그레이드 후 자바 경로가 깨지는 문제를 해결하고자 했다.불행하게도, 그것은 종종 잘못된 위치를 가리키거나 단순히 작동하지 않는 것으로 끝난다.이 항목을 제거하고 Java 경로를 수동으로 관리하는 것이 좋다.
지금은 또한 일반적인 하우스키핑을 할 수 있는 좋은 기회다.PATH
PC에 더 이상 설치되지 않은 소프트웨어와 관련된 경로가 있으면 해당 경로를 제거할 수 있다.(그런 일에 신경을 쓴다면) 경로 순서를 섞을 수도 있다.
에 추가하다PATH
이제 3단계 전에 찾은 Java 경로를 사용하여 시스템에 배치하십시오.PATH
.
너의 새로운 길이 어디든 상관없어; 그것을 마지막에 놓는 것은 좋은 선택이야.
Windows 10 이전 UI를 사용하는 경우 세미콜론을 올바르게 배치했는지 확인하십시오.목록의 모든 경로를 구분하는 것이 정확히 하나 있어야 한다.
여기선 정말 더 이상 할 말이 없다.경로만 추가하면PATH
[확인]을 누르십시오.
세트JAVA_HOME
그 일을 하는 김에 하는 편이 낫다.JAVA_HOME
뿐만 아니라.이것은 또한 자바 경로를 포함해야 하는 또 다른 환경 변수다.인기 있는 자바 빌드 시스템인 메이븐과 그래들(Gradle)을 포함한 많은 자바와 비 자바 프로그램은 올바르게 설정되지 않으면 오류를 발생시킬 것이다.
만약JAVA_HOME
존재하지 않는 경우, 새로운 시스템 환경 변수로 생성하십시오.다음이 없는 Java 디렉토리의 경로로 설정bin/
디렉토리(즉, 디렉토리)C:\Program Files\Java\jdkxxxx\
.
편집 to 하는 것을 기억하라.JAVA_HOME
Java도 업그레이드한 후.
명령 프롬프트 닫았다가 다시 열기
비록 당신이 수정했지만PATH
, cmd를 포함하여 실행 중인 모든 프로그램만 이전 프로그램 보기PATH
모든 환경변수의 목록은 실행이 시작될 때만 프로그램에 복사되고, 그 이후에는 캐시된 복사본만을 참조하기 때문이다.
cmd의 환경 변수를 새로 고칠 수 있는 좋은 방법이 없으므로 명령 프롬프트를 닫고 다시 여십시오.IDE를 사용하는 경우 IDE를 닫았다가 다시 여십시오.
참고 항목
- PATH 및 기타 환경변수란 무엇이며, 어떻게 설정하거나 사용할 수 있는가?
- PATH 시스템 변수를 설정하거나 변경하는 방법
- Windows에서 경로 및 환경 변수를 설정하는 방법
- Windows 10에서 경로 환경 변수를 설정하는 방법
이거 먹어봐..나도 가지고 있었는데 XP에서 해결됐어.
C:\ YourFolder >set path=C:\Program Files\Java\jdk1.7.0_09\bin;
C:\ YourFolder >javac YourCode.java
넌 잘못 짚었어set
명령 – 다음 역슬래시를 놓친 경우C:
과 같아야 다음을 충족해야 한다.
C:\>set path=C:\Program Files (x86)\Java\jdk1.7.0\bin
명령 프롬프트에서 다음을 실행하십시오. set Path="C:\Program Files\Java\jdk1.7.0_09\bin"
또는 set PATH="C:\Program Files\Java\jdk1.7.0_09\bin"
나는 이것을 시도해 보았고 그것은 잘 작동한다.
java에 문제가 , 를 확인한다먼저 jdk의 bin 디렉토리 javac.exe 파일이 있는지 없는지 확인하십시오. javac.exe를 .exe로 설정하십시오.JAVA_HOME
시스템 변수로서.
환경 변수를 확인하십시오.
나의 경우는 JAVA_를 가지고 있었다.HOME은 시스템 변수와 내 사용자 계정 변수에 설정되었으며, HOME은 잘못된 버전의 Java로 설정되었다.Path 변수에도 같은 문제가 있었다.
JAVA 삭제 후_내 사용자 계정 변수에서 HOME을 사용하고 올바르게 작동한 경로 변수에서 잘못된 경로를 제거하십시오.
'programing' 카테고리의 다른 글
vue 구성 요소의 데이터를 편집할 때 입력 유형 날짜의 값을 표시하는 방법은? (0) | 2022.05.18 |
---|---|
C에서 값을 교환하는 가장 빠른 방법은 무엇인가? (0) | 2022.05.18 |
Vuex [Quasar]에서 스토어에 액세스할 수 없음 (0) | 2022.05.18 |
.war vs .ear file (0) | 2022.05.18 |
Memset 정의 및 사용 (0) | 2022.05.18 |