M2 Mac OS JDK 설치된 위치를 알고 삭제하기

신창호·2023년 7월 25일
1

문제점

  • intelliJ에서 https://start.spring.io/ 에 다운받은 파일을 열어서 실행하려고 했으나,에러가 발생했다.

  • 에러 문구
    FAILURE: Build failed with an exception.
    java.io.StreamCorruptedException: invalid type code: 00

  • 보통이런 에러가 뜨는 이유는 여러가지가 있지만, 나는 실행부터 안되는 상태이기에, Gradle의 빌드하려는 JDK와 설치된 JDK 버전 불일치를 원인으로 잡았다.

  • 그래서 이번엔 JDK를 맞는 버전으로 설치해봤지만, 아래와 같은 에러가 떴다.
     Cause: error=86, Bad CPU type in executable
    • 이것은 CPU문제인데, Mac OS가 인텔에서 M1, M2를 직접 출시하게 되면서 나타나게된 에러이다.

      그래서 사실상 CPU구조와 맞는 JDK(AArch64)으로 설치하면 되지만, 그동안 이것 저것 해보냐고 설치된 JDK를 정리해야될 필요성을 느끼게 되었다.

해결방법 찾기

직접 폴더 찾기(실패)

  • 흔히들 JDK가 설치되는 경로인 /Library/Java/JavaVirtualMachines를 들어가 봤다.

    • 아무런 파일을 찾을 수가 없었다.
    • 그럼에도 불구하고, java 버전을 확인하니 jdk는 그대로 있었다.

JDK 찾는 명령어

  • 현재 내 기기에 설치되어 있는 jdk를 확인하는 명령어를 찾았다.
    /usr/libexec/java_home -V

  • 이렇게 보니 3개 위치가 어딧는지 알게되었고, 해당 위치를 확인해보니 아래와 같이 있는 것을 확인하게 되었다.

    • 경로 : /Users/이름/Library/Java/JavaVirtualMachines/
  • 만약 homebrew로 설치했을시

    • $ brew remove openjdk@17 으로 삭제 가능
  • 이쯤되니까, 환경변수 설정도 잘못된것 같다는 것을 인지하게되었다.

환경변수 설정

  • Windows은 환경변수 설정시, GUI를 제공하여 쉽게 할 수 있는 것과 달리
    Mac에서의 환경 변수는 아래와 같은 파일에 입력을 해줘야 설정이 된다.
    • .bashrc
    • .bash_profile
    • .zshrc

.bashrc , .bash_profile, .zshrc 차이

  • 먼저 위 파일들은 모두 사용자의 home 디렉토리에 위치해 있다.
    • (cd ~ 위치에 ls -a로 파일의 유무 파악이 가능하다.)

근데 왜 굳이 환경변수를 설정할 수 있는 파일이 3개나 되는 것일까?

  • .bash_profile은 로그인 통해 실행된 경우에 실행되는 스크립트(명령어들의 나열)

  • .bashrc는 로그인 없이 새로운 터미널을 열 경우마다 실행되는 스크립트.

    • 사실 앞에 bash에 주목해야되는데, bash shell를 사용하고 있다면, 이둘이 실행이 된다.($)

    • 여기서 로그인은 사용자가 비번을 입력해서 계정으로 들어온건지, guest로 들어온건지를 뜻합니당.

      user@hostname:~$
  • .zshrc의 경우는 로그인이 되어있든, 되어있지않든 상관없이 실행되는 스크립트.

    • 위 .bash_profile, .bashrc로 구분해서 사용할 필요가 없다.
    • 대신 Zsh 셸를 사용중이여 하며, 실행하면 아래와 같은 셸창을 볼 수 있다. (%)
       user@hostname% 

.bashrc 생성 후 설정

  • bashrc 파일을 만들고 파일안에 아래와 같이 환경변수를 넣어준다.

     export JAVA_HOME=/Users/shinchangho/Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk
     export PATH=$JAVA_HOME/bin:$PATH
  • 그리고 재실행 명령어

  source ~/.bashrc
  • 그리고 마지막으로 java의 버전을 확인해주면 된다.

참고링크

profile
한단계씩 올라가는 개발자

1개의 댓글

comment-user-thumbnail
2023년 7월 25일

잘 봤습니다. 좋은 글 감사합니다.

답글 달기

관련 채용 정보