mac에서 java version 변경하기

목표

mac os(테스트 버전 12.5)에서 java의 버전을 쉽게 변경하게 한다.

java로 이런저런 테스트를 하다가 보니 java 최신 버전(19)에서 작동 안하는 코드들이 많았다.

그래서 mac의 java버전을 쉽게 변경하는 방법을 찾아 보았는데,

https://coderwall.com/p/bajddw/awesome-script-for-changing-java-versions 

구글에서는 위의 내용을 추천해 줬다.

다만 2020년도에 쓰여진거라 그런지 몇가지 수정이 필요했다.

 

기본 코드

위의 링크 스크립트가 기본이긴 하지만, 본인에게는 정상적으로 작동 되지 않았다.

그래서 몇가지 수정한 코드는 아래와 같다.

#!/bin/bash

alias java_ls='/usr/libexec/java_home -V 2>&1 | grep -E "\d.\d.\d" | grep -e "Home$" | colrm 1 4 | cut -d \  -f 1'

function java_use() {
    export JAVA_HOME=$(/usr/libexec/java_home -v $1)
    export PATH=$JAVA_HOME/bin:$PATH
    java -version
}

위의 코드를 ~/.profile에 넣고 

source ~/.profile

을 하면 아래와 같이 2가지 command를 사용할 수 있다.

java_ls

내 컴퓨터에 인스톨되어 있는 자바의 버전을 보여준다.

% java_ls
17.0.3
11.0.15.1
11.0.13
1.8.333.02
1.8.0_311

 

java_use

위에 리스트 중에서 사용하고자 하는 자바 버전을 선택한다.

 % java_use 11.0.13
java version "11.0.13" 2021-10-19 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.13+10-LTS-370)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.13+10-LTS-370, mixed mode)

 

java --version

java --version을 통해서 현 자바의 버전이 변경된 것을 확인 할 수 있다.

% java --version
java 11.0.13 2021-10-19 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.13+10-LTS-370)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.13+10-LTS-370, mixed mode)

 

자동 로드하지 않을 때

그러나 .profile은 mac에서 로드를 하지 않는다고 한다.

그 이유는 맥은 .bash가 아닌 .zsh을 기본 지원하기 때문이다.

2022.07.26 - [Software활용] - Mac에서 zsh 또는 bash shell을 사용하기

자세한 내용은 위의 링크를 참조하면 된다.

 

아무튼 zsh에서 기본 로드하게 하기 위하여 .zprofile을 사용함으로써 user의 기본 설정 파일을 로드하게 하자.

% ln -s ~/.profile ~/.zprofile

심볼릭링크를 통해서 zsh에서 로드하는 .zprofile을 생성해 준다.

위와 같이 .zprofile을 만들어도 실행이 되지 않는다면 $HOME에 다음 파일이 있는지 확인해 보자.

.zshenv

이 파일에서 .zprofile을 로드하도록 해주자.

. "$HOME/.zprofile"

위와 같이 설정해 주면, 터미널을 로드 할 때 .zprofile을 같이 로드하게 된다.

위의 방법으로 잘 안된다면, 다음 링크를 참고하자.

https://stackoverflow.com/questions/18773051/how-to-make-os-x-to-read-bash-profile-not-profile-file

728x90
반응형