본문 바로가기

트러블슈팅

Mac, IntelliJ에서 JDK 관련 Maven 빌드 문제. JAVA_HOME, PATH 환경변수 설정

문제

Mac에서 IntelliJ에 메이븐 프로젝트를 빌드하려고 했는데, 아래와 같은 에러가 났다.

 

'No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?'

 

메이븐을 빌드할 때, JDK 대신 JRE를 사용하고 있는 거 아니냐고 묻는 에러였다.

 

메이븐은 빌드할 때 JDK를 사용한다.

참고로 Java를 설치할 때 JDK를 설치해야 한다. JRE는 JAVA 실행 환경만 제공하고, JDK가 실행환경 + 개발환경을 제공한다.

 

메이븐의 JDK 설정이 안되어 있는 거 같아, 

Command + ; 를 눌러 IntelliJ 환경 설정에 들어가서 임포터의 JDK를 Mac에 설치된 1.8 JDK로 설정해주었다.

 

또한, Command+, 를 눌러 프로젝트 구조에 들어가 SDK에 설치한 JDK를 설정해주고, 언어수준도 JDK에 맞게 변경해주었다.

 

그럼에도 불구하고, 동일한 메이븐 빌드 에러가 났다.

 

문제 원인

결론부터 얘기하자면, 해당 메이븐 빌드 에러는 MAC의 시스템 환경 변수에 JAVA 관련 PATH와 JAVA_HOME 설정을 해주지 않았기 때문에 일어났다.

 

https://stackoverflow.com/questions/69994621/intellij-idea-no-compiler-is-provided-in-this-environment-perhaps-you-are-run

 

IntelliJ IDEA - No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

I am trying to clean maven project using IntelliJ on mac by running below command but getting error. Please suggest what needs to be done to fix this ./mnwn clean package Error : "No compiler is

stackoverflow.com

 

터미널에서 echo $JAVA_HOME을 쳐보니 아무것도 나오지 않는 것을 확인했다.

터메널에서 mvn -version을 쳐서 Maven의 버전을 확인해보니 Java Version이 설치한 1.8과 다르게 19인 것을 확인했다.

문제 해결

MAC의 환경변수에 JAVA 관련 PATH와 JAVA_HOME을 설정해줘서 문제를 해결했다.

1. 우선 PATH와 JAVA_HOME을 설정해주기 위해, MAC의 사용 Shell을 확인한다.

난 이 Shell을 확인 안해서, ~/.zshrc에 설정해줘야 되는 것을, ~/.bash_profile에 설정해서 JAVA_HOME이 세팅되지 않아 더 삽질을 했다.

 

echo $SHELL 을 터미널에 입력하면 Shell을 확인할 수 있다.

  • bash이면, ~/.bash_profile 또는 ~/.bashrc에 환경변수 등록.
  • zsh이면, ~/.zshenv 또는 ~/.zshrc에 환경변수 등록.

 

Shell이 zsh라서 ~/.zshrc에 환경변수를 등록했다.

2. 설치한 JDK 경로를 확인한다.

JAVA는 JDK를 설치하면 /Library/Java/JavaVirtualMachines 경로에 설치되어 있다.

 

터미널에 open /Library/Java/JavaVirtualMachines을 입력하면 해당 경로로 Finder가 열리고, 설치된 JDK를 확인할 수 있다.

내 컴퓨터에 설치한 JDK 버전이 jdk1.8.0_341.jdk 인 것을 확인했다.

3. zsh셸에 JAVA 환경변수 설정하기

zsh셸의 bash_profile 역할을 하는 .zshrc를 편집한다.

터미널에 아래 커맨드를 입력해서 zshrc 파일에 접근한다.

sudo nano ~/.zshrc

 

위의 커맨드를 입력하면 아래와 같은 창이 뜬다.

 

아래 내용을 붙여 넣어 준다.

jdk1.8.0_341.jdk에는 위에서 자신의 컴퓨터에서 확인한 JDK버전을 넣는다.

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_341.jdk/Contents/Home

export PATH=${PATH}:$JAVA_HOME/bin

 

Control+X 를 누르면 아래와 같은 화면이 뜬다.

 

 

Y를 누르면 아래와 같은 화면이 뜬다. 엔터를 눌러주면 된다.

 

아래 명령어를 입력하여 변경된 ~/.zshrc 파일을 MAC에 적용한다.

source ~/.zshrc

 

그 다음 다시 echo $JAVA_HOME을 입력하면 JAVA_HOME 환경변수가 설정된 것을 확인할 수 있다.

또한, mvn -version으로 다시 메이븐의 버전을 확인해보면 Java version이 변경된 것을 확인할 수 있다.

IntelliJ의 터미널에서 한 번더 JAVA_HOME과 Maven 버전을 확인해주고, 실행시켰더니 메이븐 빌드가 되는 것을 확인하였다.

 

참고 문헌

https://investechnews.com/2021/10/26/mac-zsh%EC%85%B8%EC%97%90%EC%84%9C-java-%ED%99%98%EA%B2%BD-%EB%B3%80%EC%88%98-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0-%EB%A7%A5-zsh-%EC%9E%90%EB%B0%94/

 

mac zsh셸에서 java 환경 변수 설정하기 (맥 zsh 자바) - 인공지능

zsh셸에서 java 환경 변수 설정을 원하는 버전을 선택한 뒤 폴더명을 메모한다.

investechnews.com

https://stackoverflow.com/questions/69994621/intellij-idea-no-compiler-is-provided-in-this-environment-perhaps-you-are-run

 

IntelliJ IDEA - No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

I am trying to clean maven project using IntelliJ on mac by running below command but getting error. Please suggest what needs to be done to fix this ./mnwn clean package Error : "No compiler is

stackoverflow.com