[java] Windows 명령 프롬프트에서 javac가 작동하지 않습니다

javacWindows 명령 프롬프트와 함께 사용하려고하는데 작동하지 않습니다.

환경 변수 "C:\Program Files\Java\jdk1.6.0_16\bin\"끝에 디렉토리 를 추가하면 명령이 제대로 작동하지만 사용 하면 다음 오류가 발생합니다.PATHjavajavac

‘javac’는 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다.



답변

명령 프롬프트가 열려있는 동안 제어판에서 추가 한 경우 현재 명령 프롬프트에 영향을 미치지 않습니다. 종료하고 다시 열거 나 간단하게 수행해야합니다.

set "path=%path%;c:\program files\java\jdk1.6.0_16\bin"

확인하여 다음을 실행하십시오.

echo %path%

명령 프롬프트에서 그 내용을 알려주십시오.

그렇지 않으면 다음을 시도하여 해당 디렉토리에 javac 있는지 확인하십시오 .

"c:\program files\java\jdk1.6.0_16\bin\javac.exe"

명령 프롬프트에서. 당신은 또한 말할 수 있는 명령으로 사용되는 실행 파일 (있는 경우) :

for %i in (javac.exe) do @echo %~$PATH:i

이것은 일부 UNIX 유형 운영 체제 의 which및 / 또는 whence명령 과 유사한 깔끔한 트릭 입니다.


답변

Windows OS는 현재 디렉토리와 PATH 환경 변수에 나열된 디렉토리에서 실행 가능한 프로그램을 검색합니다. JDK의 프로그램 (예 : Java 컴파일러 javac.exe 및 Java 런타임 java.exe)은 “\ bin”디렉토리에 있습니다 (여기서 JDK 설치 디렉토리 (예 : C : \ Program Files \ Java \ jdk1.8.0_xx)). PATH에 “\ bin”디렉토리를 포함시켜야합니다.

Windows XP / Vista / 7 / 8에서 PATH 환경 변수를 편집하려면

  1. 제어판 ⇒ 시스템 ⇒ 고급 시스템 설정

  2. “고급”탭으로 전환 ⇒ 환경 변수

  3. “시스템 변수”에서 아래로 스크롤하여 “PATH”를 선택합니다. ⇒ 편집

((이제 진행하기 전에 다음 3 번을 읽으 십시오. 실행 취소 없음 ))

“가변 값”필드에서 “c : \ Program Files \ Java \ jdk1.8.0_xx \ bin”INSERT (xx를 업그레이드 번호로 바꾸고 이것이 JDK의 바이너리 디렉토리임을 확인하십시오 !!!) 디렉토리 뒤에 세미콜론 (;)을 붙여 JDK의 이진 디렉토리를 나머지 기존 디렉토리와 구분합니다. 기존 항목을 삭제하지 마십시오. 그렇지 않으면 일부 기존 응용 프로그램이 실행되지 않을 수 있습니다.

Variable name  : PATH
Variable value : c:\Program Files\Java\jdk1.8.0_xx\bin;[existing entries...]

스크린 샷


답변

긴 Google 후, javac.exe가 JRE (C : \ Program Files (x86) \ Java \ jre7 )가 아닌 JDK (C : \ Program Files \ Java \ jdk (버전 번호) \ bin)에 있음을 알게되었습니다. \ bin) “JRE에는 컴파일러가 포함되어 있지 않습니다. JRE는 단순히 Java 런타임 환경입니다. 필요한 것은 Java 개발 키트입니다.” 컴파일러 javac를 사용하기 위해

jre 내부에서 bin을 가리키는 경우 javac가 작동하지 않습니다.

cmd에서 javac를 사용하려면 시스템에 JDK가 설치되어 있어야합니다 …

javac 경로

경로 = C : \ Program Files (x86) \ Java \ jre7 \ bin 이것이 잘못되었습니다

경로 = C : \ Program Files \ Java \ jdk (버전 번호) \ bin 이것이 맞습니다.

“javac.exe”가 “C : \ Program Files \ Java \ jdk (버전 번호) \ bin” 안에 있는지 확인하십시오 .

JRE와 JDK와 혼동하지 마십시오.

이 링크에서 JDK pls를 다운로드하지 않은 경우

https://jdk.java.net/

또는

http://www.oracle.com/technetwork/java/javase/downloads/index.html

JDK와 JRE의 참조 스레드 JDK와 JRE의 차이점은 무엇입니까?


답변

나는 이것이 당신의 특정 오류가 아니라는 것을 알고 있지만 한 번 내 경로에 선행 공간이 있었고 java는 작동하지만 javac는 작동하지 않습니다.

그만한 가치가있는 것에 대해, 나는 현명한 조언을 제공합니다 : “경로를 자세히 조사하십시오”.


답변

여기에서 해결책을 시도하십시오 : http://techdem.centerkey.com/2009/05/javahome-command-script.html

하드 코딩 된 경로가 없기 때문에 JDK 또는 JRE를 업그레이드 할 때와 같이 변경하기가 훨씬 강력합니다.

빠른 솔루션 (블로그를 읽고 싶지 않은 경우)은

C:\>for /d %i in ("\Program Files\Java\jdk*") do set JAVA_HOME=%i
C:\>set PATH=%PATH%;%JAVA_HOME%

그런 다음이 줄을 시작 / 로그인 스크립트에 추가 할 수 있습니다.


답변

이 작업을 Windows 7 64에서 작동 시키려면이 작업을 수행해야했습니다.

명령 프롬프트 (cmd.exe)를 열고 다음을 입력하십시오.

set CLASSPATH=C:\Program Files\Java\jdk1.7.0_01\bin

환경 변수도 업데이트하려면 실행중인 모든 명령 프롬프트 Windows를 다시 열어야합니다.


답변

그래, 항상 그런 것은 아니지만 우리 중 많은 사람들이 과거 에이 실수를 저질렀 고 그중 일부는 여전히 그것을 모르고 있습니다. 즉, 환경 변수의 경로 (경로)를 추가 할 때마다 ‘세미콜론’바로 다음에 스페이스 바를 칠 가능성이 높습니다 (일반적으로 편집기에서 입력하는 동안 “마침표”뒤).

이 경로에 “C : \ Program Files \ Java \ jdk1.6.0 \ bin”과 같은 선행 공간이 만들어 지므로 시스템에서 “javac.exe”를 찾을 수 없습니다.