-
[Mac OS] homebrew로 Java11 설치 & 여러가지 버전 변경하기 (+ Error:java: invalid source release: 11 해결)개발/Java 2020. 12. 28. 03:32
개요
백기선님의
더 자바, 애플리케이션을 테스트하는 다양한 방법
강좌를 수강하기 시작했는데, 시작하자마자 문제가 생겼다.
스프링부트 프로젝트를 생성하고 시험삼아 테스트 클래스를 런 시켜보았는데 다음 에러가 발생했다.Error:java: invalid source release: 11
검색해보고 이유를 유추해보니, 나는 지금 자바 8버전을 사용하고 있지만 해당 프로젝트에서는 11버전을 요구하고 있는것 같았다.
그래서 문제를 해결하기 위해 자바11을 설치하고, 만일을 위해 자바8로 돌아갈 수 있도록 하는 방법을 찾았다.homebrew로 자바11 설치하기
homebrew
란 MacOS용 패키지 관리자인데, 개발자에게 필요한 도구를 쉽게 설치할 수 있다.설치에 관한 내용은 여기로
다음을 순서대로 진행한다.
brew tap adoptopenjdk/openjdk brew install adoptopenjdk11 --cask
brew tap [저장소]
: homebrew 공식 저장소 외에 다른 저장소를 사용하게 해준다.
대부분의 게시글에서brew cask ...
명령어를 사용하였는데, 더이상 사용되지 않는 것 같다. (depricated)
대신--cask
로 옵션을 주면 된다.여러가지 자바 버전을 사용하기 위한 환경변수 설정
- 설치된 자바 버전과 경로를 확인한다.
$ /usr/libexec/java_home -V Matching Java Virtual Machines (3): 14.0.1, x86_64: "OpenJDK 14.0.1" /Library/Java/JavaVirtualMachines/openjdk-14.0.1.jdk/Contents/Home 11.0.9.1, x86_64: "AdoptOpenJDK 11" /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home 1.8.0_221, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home /Library/Java/JavaVirtualMachines/openjdk-14.0.1.jdk/Contents/Home
- 환경변수 등록
~/.bash_profile
파일에 다음을 추가한다.
export JAVA_8_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home" export JAVA_11_HOME="/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home" alias java8='export JAVA_HOME=$JAVA_8_HOME' alias java11='export JAVA_HOME=$JAVA_11_HOME'
export에 나오는 경로는 각 버전의 자바가 설치된 경로다. 이렇게 환경변수로 등록해주고
alias는 단축명령어다.- 명령어로 적용시키기
source ~/.bash_profile
커맨드창에서
java8
을 입력하면 자바8을 사용할 수 있고,java11
을 입력하면 자바11을 사용할 수 있게 된다.정상적으로 버전이 변경되었는지 확인해보자.
$ java -version openjdk version "11.0.9.1" 2020-11-04 OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9.1+1) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9.1+1, mixed mode)
Error:java: invalid source release: 11
그리고 이 에러를 해결하기 위해선 인텔리제이에서 설정이 필요하다.
- File -> Project Structure -> Project language level: 을 11로 변경
- Preference -> Build, Execution, Deployment -> Compiler - Java Compiler -> Target bytecode version을 11로 변경
여기까지가 검색해서 나온 해결 방법인데, 나같은 경우 여전히 같은 에러를 띄우고 있었다. 그 위에 있는 다른 메세지도 확인해보니 javac가 여전히 자바8 버전을 사용하고 있다는 것 같았다.
정확한 해결법인지는 모르겠지만, 다음으로 해결했다.
- 다시 File -> Project Structure로 이동
- Project SDK:에서 11버전을 추가
- New 버튼 -> JDK 클릭 -> 자바11 경로의 Contents -> Home 디렉토리를 등록
하고나니 해결되었다.
현재 사용하는 자바 버전 확인하기
커맨드창에서
java -version
$ java -version openjdk version "11.0.9.1" 2020-11-04 OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9.1+1) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9.1+1, mixed mode)
설치되어 있는 자바 버전 확인하기
커맨드창에서
/usr/libexec/java_home -V
$ /usr/libexec/java_home -V Matching Java Virtual Machines (3): 14.0.1, x86_64: "OpenJDK 14.0.1" /Library/Java/JavaVirtualMachines/openjdk-14.0.1.jdk/Contents/Home 11.0.9.1, x86_64: "AdoptOpenJDK 11" /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home 1.8.0_221, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home /Library/Java/JavaVirtualMachines/openjdk-14.0.1.jdk/Contents/Home
참고
https://ifuwanna.tistory.com/247
https://medium.com/w-logs/installing-java-11-on-macos-with-homebrew-7f73c1e9fadf
https://medium.com/@yongkyu.jang/mac-openjdk-%EB%B2%84%EC%A0%84%EB%B3%84%EB%A1%9C-%EC%97%AC%EB%9F%AC%EA%B0%9C-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-using-homebrew-b3920e51f066