개발새발

Mac에서 JAVA 버전 확인과 IntelliJ 에서 JDK 변환하기 본문

우아한테크코스

Mac에서 JAVA 버전 확인과 IntelliJ 에서 JDK 변환하기

무비인 2022. 2. 20. 18:58

자바 버전 변경을 하며 마주한 에러

지금은 자바 8로 변경해둔 상태지만, 원래는 11 버전이었고, openJDK java8 을 다운받은 후 인텔리제이 -> 세팅에서 설정을 변경했지만,

창을 껐다가 키면 이전 버전으로 복구되는 문제가 있었다. 또 마주할 수 있는 문제기 때문에 파고들어보기로 했다.

 


1. OracleJDK 와 OpenJDK 와 AdoptOpenJDK 의 차이?

위에 에러는 결론적으로 OpenJDK -> AdoptOpenJDK 로 변경 하니 해결되었다. 왜 그럴까?

문제의 시작은 OracleJDK 로 부터 나왔다. 주 쟁점이 유료화 였다.

학생 신분에서는 OracleJDK 가 유료화 된 부분에 큰 영향이 없어 고민할 기회가 없었던 것 같다.

 

1.1 OracleJDK 와 OpenJDK 의 차이

  • JDK 의 종류가 2개인데, Oracle JDK는 폐쇄적인 상업 코드 기반(부분 유료)이고 또 다른 하나는 오픈 소스 기반의 OpenJDK(무료)이다.
  • OpenJDK는 모든 JDK의 구현 기준이 되는 JDK이고, Oracle JDK는 OpenJDK의 구현에 더해 여러 추가적인 요소들을 포함한다고 한다.
  • oracle 은 3년 마다 릴리즈, OpenJDK 6개월마다 릴리즈를 한다고 한다.

 

1.2 OpenJDK 와 AdoptOpenJDK 의 차이

결론이다. AdoptOpenJDK는 커뮤니티에 의해 무료로 제공되고 있는 OpenJDK 호환 바이너리이다.

 OpenJDK가 상위 개념, AdoptOpenJDK 가 하위 개념이다.

OpenJDK 는 Oracle 로 부터 TCK 인증을 받지 못해서 부분적으로 호환 문제가 발생했었는데, 그 문제를 하기 위해 호환 바이너리인 AdoptOpenJDK를 만들었다고 한다.

내가 겪은 에러가 호환 문제와 관련이 있던 것 같다. java로 개발을 하며 JDK가 필요한 것은 알았지만, JDK에 종류와 차이에는 무지했다.

아직 개념이 확실하지 않아 잘못된 부분이 있을 수도 있는데, 우테코에 가서 코치님들과 크루들과 이 내용을 얘기할 수 있으면 좋겠다.



해결 방법(Mac에서 JAVA 버전 확인과 IntelliJ 에서 JDK 변환하기)

내 컴퓨터 내에 설치된 모든 자바를 확인하는 법

cmd 창이나 인텔리제이 터미널 창에서 아래 명령어를 실행하면 확인 가능하다.

$ /usr/libexec/java_home -V

기본으로 설정된 자바 버전 확인

이렇게 여러개가 있을 때, 내가 기본으로 설정한 버전은 뭘까?? 확인해보자

java -version


JAVA 설치하기

우선 자바를 Homebrew 로 다운받자 Homebrew 는 mac 에서 여러가지 SW 설치를 단순하게 해준다고 한다. (처음 알았다)

  1. Homebrew 설치 및 업데이트
brew update
  1. adoptopenjdk/openjdk 추가하기
brew tap adoptopenjdk/openjdk
  1. java8 설치하기
brew install --cask adoptopenjdk11
  1. version 확인
$ /usr/libexec/java_home -V
  1. 자바 설정 파일 열기 (인텔리제이 터미널 )
vi ~/.zshrc    
 
  1. 설정하기 i 누르고 들어가서 제일 아래부분에 복사 -> 붙여넣기 , ESC 누르고 저장하려면 wq!, 그냥 나가려면 q!
$ export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
  1. 설정 적용하기
source ~/.zshrc

참고

'우아한테크코스' 카테고리의 다른 글

객체, 설계  (0) 2022.08.24
JDBC와 JDBC Template  (0) 2022.04.27
MVC 패턴  (0) 2022.02.20
Enum을 사용하는 이유가 뭘까?  (0) 2022.02.20
오류와 예외는 같은걸까?  (0) 2022.02.20