java -version이 JAVA_HOME에 정의 된 버전과 다른 버전을 반환하는 이유는 무엇입니까?


18

내 JAVA_HOME이 C:\bea\jdk150_10\bin(Java 1.5)로 설정되어 있습니다. 그러나 실행 java -version하면 다음과 같은 결과가 나타납니다.

java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)

1.5 버전을 어떻게 사용합니까?

답변:



14

운영

where java

명령 프롬프트에서.

내 시스템에서는 예상치 못한 것을 인쇄했습니다.

C:\Users\Mikel>where java
C:\Windows\System32\java.exe

실제로 Java가 있는지 확인하십시오.

C:\Users\Mikel>c:\windows\system32\java.exe -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)

따라서 한 가지 해결책은 선호하는 Java가 PATH에 있는지 확인하는 것 C:\Windows\System32입니다.

또한 Java 제어판에서의 버전을 관리하는지 확인하려고 시도했지만 C:\Windows\System32설정을 볼 수는 있지만 편집 할 수는 없었습니다. 어쩌면 그것은 당신을 위해 작동합니까?


8

PATH변수가 아닌 수정하십시오 JAVA_HOME.

PATH 변수 설정 또는 변경 에 대한 Java 문서를 참조하십시오 .

  1. 시작-> 제어판-> 시스템-> 고급

  2. 시스템 변수 아래의 환경 변수를 클릭하고를 찾아 PATH클릭하십시오.

  3. 편집 창 PATH에서 클래스 위치를의 값에 추가하여 수정하십시오 PATH. 항목이없는 경우 PATH새 변수를 추가 PATH하고 클래스 이름과 위치를 값 으로 추가하도록 선택할 수 있습니다 .

  4. 창을 닫습니다.

  5. 명령 프롬프트 창을 다시 열고 Java 코드를 실행하십시오.


PATH 변수에서 jdk 6에 대한 참조가 보이지 않습니다. Java 5 X에만 해당)
Jeune

예를 들어, 절차는 여전히 같습니다.
John T

4

모든 응용 프로그램 JAVA_HOME이 JDK 버전을 얻는 데 사용 하는 것은 아닙니다 . 앞에서 말했듯이 그들 중 일부는을 사용합니다 %SystemRoot%\System32\java.exe. %SystemRoot%\java.exe -version어떤 버전인지 확인할 수 있습니다 .

다른 응답에 추가해야 할 것은 Maven으로 빌드하는 경우 Maven이 올바른 버전 을 사용하기 위해 M2_HOME\bin이전 %SystemRoot%에 있어야한다는 것 JAVA_HOME입니다.


1

JAVA_HOME이 저장소를 가리 키지 않아야합니다!

SET "JAVA_HOME = C : \ bea \ jdk150_10"SET "PATH = % JAVA_HOME % / bin; % PATH %"

또한 JAVA_HOME에 대한 경로가 올바른지 확인하십시오! 오타가 있고 C : \ Windows \ System32 \가 경로에 있으면 지정된 java.exe 대신 java.exe가 실행됩니다.


0

승리 10에서 나를 위해 javac -version은 java7을 보여 주었고 java -version은 java8을 보여주었습니다. 명령 프롬프트에서 "where java"는 세 위치에서 java를 보여주었습니다. C : \ Windows \ System32에서 Java를 제거하고 경로 변수에서 "C : \ ProgramFile \ Oracle \ Java \ javapath"및 "C : \ ProgramData \ Oracle \ Java"항목을 제거하고 경로 변수에 Jdk7 항목 만 유지 2 시간의 긴 투쟁 끝에 일했습니다.


0

환경 변수의 고급 설정으로 이동하여 경로 변수를 편집하십시오. 어떤 Java 버전을 원하든 다른 Java 버전의 다른 모든 환경 변수 위로 해당 버전 경로를 위로 이동하십시오.

여기 이미지 java_home 환경 변수가 Oracle Java 환경보다 위로 이동합니다.


-1

이 시도:

@echo off
DOSKEY WHICH=@for %%E in (%PATHEXT%) do @for %%I in ($*%%E) do @if NOT "%%~$PATH:I"=="" echo %%~$PATH:I
SET "JAVA_HOME=C:\Java\jdk1.6"
SET "PATH=%JAVA_HOME%\bin;%PATH%"
where.exe java
WHICH java
pause

-1

나는 같은 문제에 직면했다. 나중에 범인은 Java 8이라는 것을 알았습니다. 일찍 Java 8을 설치했지만 이제는 Java 8 폴더가 없으며 JAVA_HOME이 jre7로 설정되었지만 여전히 위의 문제에 직면했습니다.

해결책

C : \ ProgramData \ Oracle \ Java에있는 javapath를 삭제했습니다 . 이제 내 시스템이 제대로 작동합니다. 또한 일식 시작 문제를 해결했습니다 .


-2

나는 같은 문제가 있었다. 이렇게하면 문제가 해결되었습니다.

Windows 8 또는 10의 경우 환경 변수의 경로에서 "C : \ ProgramFile \ Oracle \ Java \ javapath"를 제거해야합니다.

문제가 해결 될 수 있습니다.


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