Windows는 JAVA_HOME을 무시합니다. JDK를 기본값으로 설정하는 방법은 무엇입니까?


90

Windows에서 JRE 대신 JDK를 사용하도록 어떻게 설득합니까?

이 질문은 이전, 여기 및 다른 곳에서 요청되었습니다.

기본 Java 설치 / 런타임 (Windows)을 설정하려면 어떻게합니까?

문제는 Windows가 무시 JAVA_HOME하고 JDK bin 디렉토리를 경로의 첫 번째 항목으로 만든 사실도 무시한다는 것입니다.

java -version명령 줄에서 실행할 때 JDK 1.6 설치를 호출하는 대신 1.7 JRE를 실행합니다.

내 생각 엔 이것은 1.7에만 해당되는 문제이며 Windows 7은 레지스트리와 관련해서는 안되는 일을하고 있습니다.

이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

편집 : 죄송합니다. "경로"를 의미했을 때 위의 "클래스 경로의 첫 번째 항목"을 썼습니다. 죄송합니다.

답변:


134

Windows에서 java실행 파일은 Windows 레지스트리를 사용하여 실행할 Java의 기본 버전을 찾습니다.

java.exe실행할 사본은 PATH환경 변수 를 사용하여 찾을 수 있습니다. 이를 변경하는 단계를 수행하지 않는 한 기본적으로 Windows 디렉토리에 사본이 있습니다. 이 사본은 Java 런타임 디렉토리에 없기 때문에 레지스트리를 확인하여 찾습니다.

그래서, 당신도 필요 레지스트리를 수정, 또는 당신이 원하는 자바의 버전을 넣어 전에 당신의 Windows 디렉터리 PATH.


11
여기 OP. 위의 내 편집을 참조하십시오. 네, 그게 해결되었습니다. 두 가지 참고 사항 : 첫째, Java 설치 프로그램이 실제로 Windows \ System32에 java.exe를 넣은 것으로 보입니다. 이것은 나에게 놀랍다. 둘째, 컴퓨터 / 속성 / 고급 시스템 설정 / 환경 변수에서 경로 를 수정할 때 사용자 경로가 아닌 시스템 경로 를 수정해야 합니다 . 시스템 경로가 우선입니다.
ccleve 2011 년

2
또한 Java 설치 프로그램이 실제로 java.exe를 Windows \ System32에 드롭하는 것 같다는 user237815의 요점을 강조합니다. 이것은 확실히 나에게 직관적이지 않았습니다. 콘솔에서 "java -version"을 확인한 후에야 Windows가 이전 및 원하지 않는 버전이 아닌 JDK 설치에서 원하는 java.exe를 사용하고 있다는 편안함을 얻었습니다.
John Tobler 2012 년

17
이 문제는 Windows / System32 폴더에서 java.exe, javaw.exe 및 javaws.exe의 이름을 변경하여 제 경우에도 해결되었습니다. 그런 다음 java -version은 JAVA_HOME 및 PATH에 설정된 버전을 보여줍니다
Inversus

6
당신은 내 하루를 구했습니다! PATH에서 Windows 이전에 JDK와 관련된 항목을 이동하면 문제가 해결되었습니다. 정말 고맙습니다!
the_dark_destructor

9
나는 Windows 10 %JAVA_HOME%\bin에서 path변수의 첫 번째 위치에 놓고 저에게 일합니다.
Wendel

31

Windows 8에서는 C:\ProgramData\Oracle\Java\javapath 디렉터리 를 제거 할 수 있습니다 .

경로에서

내 문제가 해결되었습니다.


5
Windows 10에서는 C : \ Program Files (x86) \ Common Files \ Oracle \ Java \ javapath입니다. 이것은 시스템 경로 변수에 자동으로 추가됩니다. 사용자 지정 경로 위치를 설정하는 것을 삭제하십시오.
Dexter

1
위의 의견은 Windows 10의 경우 도움이되었습니다
Saba Ahang

24

나도이 문제가 있습니다. 1.6을 실행 중이지만 1.5로 작업중인 코드를 빌드하고 싶습니다. 나는 변경했습니다 JAVA_HOMEPATH아무 소용 (사용자 모두 및 시스템).

대답은 1.6의 설치가 하락한다는 것입니다 java.exe, javaw.exe그리고 javaws.exe내에 Windows\System32폴더 (윈도우 7).

나는 이러한 파일 이름을 변경하여 그것을 해결 java_wrong.exe, javaw_wrong.exe하고 javaws_wrong.exe. 그렇게 한 후에 만 JAVA_HOME및에 정의 된 올바른 Java 버전을 선택합니다 PATH. 쉽게 되돌릴 수있는 방식으로 파일을 삭제했기 때문에 파일 이름을 변경했습니다.

도움이 되었기를 바랍니다!


10
이름을 바꾸는 대신 첫 번째 값 % JAVA_HOME % \ bin으로 지정하여 PATH 변수를 수정할 수 있습니다. 이렇게하면 첫 번째 값이됩니다
maxivis

1
@ maxivis 감사합니다. 문제는 Windows \ System32가 JAVA_HOME 이전에 있었던 것과 같은 PATH 요소의 순서 일 수 있습니다. 간단히 이름을 변경하여 되돌릴 수있는 방식으로 효과적으로 삭제되도록했습니다.
Inversus

어떻게 든 JAVA_HOME을 경로에 설정하는 것이 나에게 어떤 식 으로든 작동하지 않았으며 실제로 해결되었습니다.
Guilherme Orioli

13

Windows는 아무것도 무시하지 않습니다. 이것은 설정 문제입니다. Windows는 귀하가 제공하는 것만 사용합니다. 에 대한 특별한 지식이 없습니다 JAVA_HOME.

CLASSPATHWindows 와도 관련이 없습니다. Windows에서는 폴더 위치로 확장되는 유일한 환경 변수입니다.

%PATH%환경 변수를 확인하십시오 . Windows가 다른 하나를 먼저 찾는 이유입니다. 경로 (링크 한 게시물)는를 가리켜 야합니다 %JAVA_HOME%\bin;<remainder of path>. 다시 말하지만, 링크 한 게시물은 배치 파일을 사용하여이를 설정하는 방법을 제공했습니다.

(이것을 모르는 다른 사용자를 위해 : % PATH %를 검사하는 가장 쉬운 방법은 명령 프롬프트를 열고를 입력하는 것 echo %PATH%입니다. Computer시작 메뉴의 오른쪽 창에서 를 마우스 오른쪽 버튼으로 클릭 하고 Properties,,를 Advanced System Settings차례로 선택하여 이동할 수도 있습니다. 및 tne Environmental Variables버튼.)


@erickson : 좋습니다. 고마워요-제가 정정하겠습니다. 그러나 Windows와는 관련이 없지만 내 대답의 요점이었습니다. :)
Ken White

이해했다, 나는 단지 새로운 오해가 만들어 질 수 있다고 걱정했다 . Java는 JAVA_HOMEWindows보다 더 많은 것을 알지 못합니다.
erickson

수정 해 주셔서 감사합니다. 저는 Java 사용자가 아니므로 (현재까지 제한된 경험) 향후 참조를 위해 알아 두는 것이 좋습니다.
Ken White

1
JAVA_HOMEJava 설치의 루트로 설정되어야합니다. 경로에는 있어야합니다 %JAVA_HOME%\bin;&lt;remainder of path%gt;. 그렇지 않으면 java, javac 등을 "찾지 못"하게됩니다. 물론 Windows는 실제로 PATH변수 만 확인하지만 일부 Java 관련 도구 JAVA_HOME는 가끔 확인합니다.
Edwin Buck

@Edwin : 누락 된 부분 \bin도 수정했습니다 . 감사.
Ken White

6

나는 같은 문제가 있었다. Java 버전이 많이 설치되어 있으며 어떤 이유로 1.6 (C : \ jdk1.6.0_45_32 \ bin)을 사용하도록 경로를 지정했지만 Java 1.6 대신 Java 1.7이 사용되었습니다.

Windows가 1.7 대신 1.6을 사용하도록 PATH 환경 변수의 첫 번째 항목으로 사용하려는 JDK의 경로 (1.6)를 이동해야했습니다.

예를 들어 이전의 PATH 환경 변수는 다음과 같습니다.

C:\Program Files (x86);...<other entries>;C:\dev\ant181\bin;C:\jdk1.6.0_45_32\bin

그리고 jdk를 첫 번째로 옮긴 후 작동했습니다.

C:\jdk1.6.0_45_32\bin;C:\Program Files (x86);...<other entries>;C:\dev\ant181\bin

Java 1.7의 Windows 설치 프로그램이 이미 PATH에있는 다른 디렉터리에 설치 했으므로 지정된 사용자 지정 PATH 항목 C : \ jdk1.6.0_45_32 \ bin 대신 먼저 사용됩니다.


고마워 형제여. JAVA_HOME \ bin 경로를 Path 변수의 첫 번째 요소로 이동하여 내 생명을 구했습니다.
ÖMER TAŞCI

4

'Path'변수의 내 사례 에는 ' C:\ProgramData\Oracle\Java\javapath;' 와 같은 매개 변수가 추가되었습니다 . 이 위치에는 java.exe, javaw.exe및 Oracle을 javaws.exe통해 새로 설치된 Java 8이 jdk.exe있습니다.

내 경로가 이미있는 경로에서이 텍스트를 제거 %JAVA_HOME%\bin했습니다.

이제 변수 'JAVA_HOME'가 내가 원하는 Java 버전을 제어하고 있습니다.


4

여기에 이미지 설명 입력JDK 8 이후에 JDK 10을 설치하고 시스템 환경 변수에서 "C : \ ProgramData \ Oracle \ Java \ javapath"와 같은 경로를 설정 한 다음이 경로로 Java 버전을 제어한다고 가정합니다. 여기에 jdk 1.8 경로가 설정되어 있어도 JAVA_HOME을 무시하므로 JAVA_HOME 경로의 효과를 얻으려면 경로에서 "C : \ ProgramData \ Oracle \ Java \ javapath"를 제거하십시오.



2

Java 7 및 8이 설치되어 있고 Java 7로 리디렉션하고 싶지만 cmd 프롬프트 창에 Java 버전이 Java 8로 표시됩니다.
추가 된 Java 7 bin 디렉토리 경로 ( C : \ Program Files \ Java \ jdk1.7.0_10 \ bin ) 끝에서 PATH 변수로 변경했지만 작동하지 않고 Java 8을 보여줍니다. 그래서 Java 7 경로를 경로 값의 시작으로 변경하고 작동했습니다.
새 cmd 프롬프트 창을 열고 Java 버전을 확인했는데 이제 Java 7이 표시됩니다.


1

제 경우에는 Java 7과 8 (x64 모두)이 설치되어 있고 Java 7로 리디렉션하고 싶지만 모든 것이 Java 8을 사용하도록 설정되어 있습니다. Java는 PATH 환경 변수를 사용합니다.

C : \ ProgramData \ Oracle \ Java \ javapath

폴더 런타임을 찾는 첫 번째 옵션으로 (숨겨진 폴더). 이 경로에는 편집 할 수없는 3 개의 심볼릭 링크가 있습니다.

내 PC에서 PATH 환경 변수는 다음과 같습니다.

C : \ ProgramData \ Oracle \ Java \ javapath; C : \ Windows \ System32; C : \ Program Files \ Java \ jdk1.7.0_21 \ bin;

제 경우에는 다음과 같이 보일 것입니다.

C : \ Windows \ System32; C : \ Program Files \ Java \ jdk1.7.0_21 \ bin;

심볼릭 링크를 잘라내어 다른 곳에 붙여 넣어야 Java가 찾을 수없고 나중에 복원 할 수 있습니다.

JAVA_HOME 및 JRE_HOME 환경 변수를 원하는 Java 폴더의 런타임 (제 경우에는 Java 7)으로 설정 한 후 명령 java -version이 원하는 Java 런타임을 표시해야합니다. 나는 레지스트리를 엉망으로 만들 필요가 없다는 것을 언급합니다.

Win7 x64에서 테스트되었습니다.


1

이 문제는 아마도 시스템에 설치된 이전 버전의 Java 때문일 수 있습니다. 먼저 환경 변수를주의 깊게 확인하고 이전 버전의 JAVA와 관련된 모든 환경 변수를 제거하고 해당 경로를

C:\Program Files\Java\<your new jdk version>\bin

0

여기에 추가 요소가 있습니다. Java 설치 프로그램이 설치를 요청할 때마다 설치하는 Java 실행 파일 외에도 Windows에서 Java 설치 프로그램은 Windows system32 디렉토리에 이러한 실행 파일의 일부 사본을 저장하므로 모든 Java 실행 파일을 사용할 수 있습니다. 가장 최근에 설치되었습니다.


0

.BAT 파일을 Windows 서비스로 사용하는 경우에는 Windows 서비스를 제거하고 올바른 Java 버전을 가리 키도록 % JAVA_HOME %을 변경 한 후 다시 설치하는 것이 좋습니다.


0

이 문제로 얼마 동안 고심하고 조사한 끝에 마침내 다음 단계에 따라 문제를 해결할 수있었습니다.

1) jdk 버전 12를 설치합니다.
2) 시스템 변수에 새 변수를 생성합니다.
3) 이름을 JAVA_HOME으로 지정하고 jdk 설치 경로를 지정합니다.
4)이 변수를 경로에 추가하고 맨 위로 이동합니다.
5) C : \ Program Files (86) \ Common Files \ Oracle \ Java \ javapath로 이동하여 java.exe 및 javaw.exe를 pathtojavajdk / bin 폴더에서 동일한 이름의 해당 파일로 바꿉니다.

마지막으로 "java -version"을 사용하여 cmd에서 java의 기본 버전을 확인했고 작동했습니다!


0

사용자 환경 변수 설정에서 JAVA_HOME 및 PATH를 올바르게 구성했지만 작동하지 않는 동일한 문제가 발생했습니다. 내 시스템 환경 변수를 업데이트하면 작동하기 시작했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.