모아이티

[java 오류] java 11 설치 오류(version 확인 안될 때 해결법) 본문

오류해결

[java 오류] java 11 설치 오류(version 확인 안될 때 해결법)

Yun's kitchen 2021. 7. 6. 14:35

오류내용

스프링부트 강의를 듣느라 jdk8 -> jdk11버전으로 버전업 해야하는 상황이 발생해 jdk11버전을 셋팅했는데

cmd에서 자바 버전이 확인이 안되는 상황

 

 

해결 방법

1. 제어판 > 프로그램 > 프로그램 및 기능 에서 게시자로 정렬 후 Oracle Corporation 해당되는 것들 모두 삭제

 

2. 시스템 속성 > 환경변수 에서 설정한 모든 환경변수 삭제 (JAVA_HOME, Path 내 %JAVA_HOME%\bin)

 

3. oracle에서 jdk11 버전 다운

4. 환경 변수 재설정

a) 시스템 속성 > 환경변수에서 새로만들기

b) JAVA_HOME 설정

본인이 설정한 jdk 주소 찾아 변수 값 설정

(보통 C드라이브 > program files > java 에 가면 있더라고요. default값일 때)

c) PATH 설정

변수 | Path

값 | %JAVA_HTOM%\bin\으로 설정

d) cmd 열기 > javac 입력 > 아래와 같은 창 나오면 성공

추가로 java -version 으로 확인해보면 11버전이 나온다.

 

javac를 정상적으로 콘솔창에서 실행시킬 수 있는 것을 볼 수 있다. 이렇게 정상적으로 사용이 가능한데, JAVA_HOME은 구지 왜 만들어서 Path에 상대주소로 입력해주는 걸까?

 

 

JAVA_HOME=C:\Program Files\Java\jdk-10.0.1

 

이 환경변수에는 jdk의 경로를 지정해준다. 이 경로는 Path에 javac를 사용하고자 할때, %JAVA_HOME%\bin과 같이 상대주소로 사용하게 해준다. 이렇게 설정하면 자바의 경로가 변경되면 Path값 대신 JAVA_HOME을 변경해주면 되고, jdk의 경로가 필요한 모든 곳에서 이 값을 사용할 수 있다. 이는 CLASSPATH 설정값에도 사용되기도 한다. 과거부터 프로그래머들이 통상적으로 이런 이름을 사용했다고 한다.

 

대표적으로 자바기반으로 서버를 구축할 때 사용되는 WAS인 톰캣(Tomcat)에서 내부적으로 JAVA_HOME 환경변수를 사용하므로, 여러 이유로 jdk의 경로는 필수적으로 잡아줄 필요가 있다.

 

CLASSPATH=.;C:\Program Files\Java\jdk-10.0.1\lib\tools.jar

 

JVM은 CLASSPATH의 경로를 확인하여 라이브러리 클래스들의 위치를 참조하게 된다. 그러나 J2JDK 버전부터는 \jre\lib\ext 폴더에 필요한 클래스 라이브러리들을 복사해 놓으면 사용가능하여 특별한 경우가 아니면 설정을 하지 않는다.

 

https://hyoje420.tistory.com/7 참고자료

Comments