맥 자바 설치 오류 - maeg jaba seolchi olyu

개요

백기선님의 더 자바, 애플리케이션을 테스트하는 다양한 방법 강좌를 수강하기 시작했는데, 시작하자마자 문제가 생겼다.
스프링부트 프로젝트를 생성하고 시험삼아 테스트 클래스를 런 시켜보았는데 다음 에러가 발생했다.
Error:java: invalid source release: 11
검색해보고 이유를 유추해보니, 나는 지금 자바 8버전을 사용하고 있지만 해당 프로젝트에서는 11버전을 요구하고 있는것 같았다.
그래서 문제를 해결하기 위해 자바11을 설치하고, 만일을 위해 자바8로 돌아갈 수 있도록 하는 방법을 찾았다.

homebrew란 MacOS용 패키지 관리자인데, 개발자에게 필요한 도구를 쉽게 설치할 수 있다.

설치에 관한 내용은 여기로

다음을 순서대로 진행한다.

brew tap adoptopenjdk/openjdk 
brew install adoptopenjdk11 --cask

brew tap [저장소] : homebrew 공식 저장소 외에 다른 저장소를 사용하게 해준다.
대부분의 게시글에서 brew cask ... 명령어를 사용하였는데, 더이상 사용되지 않는 것 같다. (depricated)
대신 --cask로 옵션을 주면 된다.

여러가지 자바 버전을 사용하기 위한 환경변수 설정

  1. 설치된 자바 버전과 경로를 확인한다.
$ /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
  1. 환경변수 등록
    ~/.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는 단축명령어다.

  1. 명령어로 적용시키기
    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

그리고 이 에러를 해결하기 위해선 인텔리제이에서 설정이 필요하다.

  1. File -> Project Structure -> Project language level: 을 11로 변경
  2. 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

아이맥, 맥북에서 간혹 일부 앱을 실행할 때 'xxxx 레거시 Java SE 런타임을 설치해야 합니다.' 라는 메세지가 나타나며 실행되지 않는 경우가 발생할 수 있다. 이 오류는 말그대로 해당 앱, 프로그램을 실행할 때 자바 런타임이 제대로 설치되어 있지 않아 발생되는 문제이다. 

기본적으로 맥OS 에는 Java 런타임이 설치가 되어져 있지만 새로운 버전 업데이트가 이루어지거나 자바의 버전 업데이트가 이루어지는 경우에 별도로 업데이트가 필요할 수 있다. 이 문제는 큰 오류는 아니기 때문에 아주 간단하게 자바 런타임 소프트웨어를 설치하는 것으로 해결 할 수 있다. 

자바 런타임은 애플에서 제공하므로 간단하게 추가 정보를 누르거나 애플 웹사이트를 검색하여서 다운로드가 가능하다. 또는 이 블로그로 찾아들어왔다면 위의 링크를 통해 다운로드가 가능하다. 

맥 자바 설치 오류 - maeg jaba seolchi olyu

다운로드 받은 파일을 실행하면 JavaForOSX.pkg 파일이 나타나고 이 파일을 클릭하면 설치 소프트웨어가 시작이 된다. 설치 과정에서 컴퓨터 사용자 계정의 암호를 물어볼 수 있다. 

만약 사용자 계정의 암호가 기억나지 않는다면 위의 링크를 통해 재설정이 가능하지만 파일볼트(Filevault) 나 iCloud 계정 암호를 사용하는 경우에는 불가능할 수 있다. 만약 iCloud 계정과 사용자 계정의 암호를 연동한다면 사용중인 Apple ID 계정으로 재설정을 시도해볼 수도 있다. 

설치가 완료되면 완료 버튼을 누르고 다른 앱을 실행하면 기존과는 다르게 정상적으로 실행이 되는 것을 확인할 수 있다. 아주 간단하게 해결이 가능한 문제로 사실 검색까지 필요하지 않을 수 있지만 처음 아이맥, 맥북을 접하고 자주 사용하는 어도비(adobe) 앱을 실행할 때 종종 나타날 수 있으므로 혹시라도 어려움이 있었다면 도움이 되었기를 바란다.