loading
본문 바로가기
BACK-END/JAVA

Mac 에서 자바 path 및 환경변수 설정하기 * 맥에서 JDK 초기설정

by pikiforyou 2020. 8. 12.

 

 

 

집에서는 맥북을 쓰기때문에 윈도우와는 다르게 설정하는 것이 필요했는데,

정보들이 나에게 맞지않거나, 아니면 스택오버플로우등에 정보가 다 산재돼있어서 처음에 설정하느라 정말 고생했다 ,,ㅠㅠ

 

JAVA는 여러가지 버젼이 있지만 보통은 JDK 8 을 쓴다. 

유료화 이슈도 있고, 라이브러리등이 jdk1.8 버젼으로 맞춰져있는 경우가 많기때문이다.

각각의 버전을 다 다르게 관리하는 jenv라는것도 있으니 필요하면 찾아보자.

또한 open jdk 를 사용하는 분들은 다른 글을 참조하는 것이 좋다.

 

앞서 말하지만, 이 글은 

맥 카탈리나 / zsh터미널에서 구동하였으며, 오라클버전 자바 JDK8 을 다운받는 방법을 설명한 글이다.

 

 

+2022.03 추가

-MAC M1 칩 기반에서는 다르게 작동할 수 있습니다. 최신 글을 찾아보시고 하시는 걸 추천드립니다

-최근의 맥OS에서 bash가 아닌 zsh가 기본 쉘로 설정되었습니다. 기본 터미널을 켰을때 터미널 상단에도 (zsh)라고 써져있고 블록도 ~ 로 시작된다면 zsh쉘입니다. 이때는 하단에 있는 ~/.bash_profile 등의 bash 설정이 필요가 없습니다. ~/.zshrc 만 설정하시면 됩니다. jdk를 설치하신 후에는, 가장 하단에 기본 zsh쉘인경우 : 부분을 봐주세요. 

 


 

오라클 자바에디션 ? 브루?

예전엔 가능했다고 하지만, 현재는 브루(brew)을 통해 설치할 수 없다.

참고로 open jdk는 브루로 쉽게 설치할 수 있다고 한다.

따라서 https://www.oracle.com/kr/java/technologies/javase/javase-jdk8-downloads.html에 들어가서 별도로 다운받아야한다.

경로가 변경되었다면 구글에 mac jdk1.8 download / mac java 1.8 download 로 치면 나온다.

 

~ls -al //전체경로에서 ./bash_profile 또는 profile이 있는지 확인

cd /Library/Java/JavaVirtualMachines //버전확인용

cd /Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home 
//자신에게 맞게 버젼을 변경후 이 경로를 터미널에 입력한다.

 

먼저, 전체경로에서 ls -al 을 입력하여 ./bash_profile 이나 ./profile등이 있는지 먼저 확인한다. 

이후 터미널에서 첫번째 경로를 입력하여 jdk의 설치경로와 버전을 알아낸후,

두번째 경로를 이용하여 터미널에 입력한다. (버전은 반드시 설치된것과 동일해야한다)

 

 


 

환경변수 설정하기 전에 ... 

**최근의 맥os 에서는 ~/.zshrc 설정파일 하나로만 하셔도 충분합니다. 기존에는 bash shell이 기본이었기 때문입니다.

저는 기본 bash shell환경에서 zsh를 다운받아 기본 터미널을 변경했기때문에 그런거고, zsh터미널이 기본이신분들은 하단에 기본 zsh 쉘인 경우를 참고해주세요. (2022.03 자로 수정되었습니다) 

 

 

1. 기본 zsh 쉘이 아닌 경우 : ~/.bash_profile 로 환경변수 설정

맥에서는 ~/.bash_profile 에 환경변수를 설정하고 저장시킨다.

아까 전체경로에서 확인했을때 이 파일이 없었다면 새로 만들어줘야한다 (내가 그랬다....)

 

touch .bash_profile //맥에서는 touch를 통해서 만들수있다. 

 

전체경로에서 만들어줬다면 이제 vi 을 이용하여 변수를 설정해주면 된다.

 

vi ~/.bash_profile  //vi 에디터로 해당 디렉토리를 연다.


// i를 누르고 ---INSERT--- 뜬다면 입력할수 있다. 이 두가지를 입력하자.
export JAVA_HOME=/Library/Java/JavaVirtualMachines/[jdk 설치 버전].jdk/Contents/Home
export PATH=${PATH}:$JAVA_HOME/bin

// 이후 ESC를 누른후 :wq 로 에디터를 빠져나오자
:wq

// vi에디터가 종료된후의 원경로에서 입력해준다
source ~/.bash_profile

 

PATH를 설정해줄때 직접 경로를 설정해줄수도 있지만, 위와 같이 PATH=$PATH로 설정해줘야 기존에 있던 환경변수와 상관없이, 추가적으로 환경변수경로가 지정이 된다. 그렇지않으면 기존 명령어들이 먹지않게되는 끔찍한 상황(...)이 올수도있다..

ZSH 터미널이 아닌 기본 쉘이나 bash를 사용하고 있다면 여기서 끝이난다. 

하지만...  

 

 

Zsh 에서 PATH 기억시키기

zsh는 ~/.zshrc의 설정을 따르기때문에, 위와 같은 상황에서 터미널을 종료하면 휘발되버리기때문에,

접속할때마다 source ~/.bash_profile을 입력해줘야한다.

왜 작동이 안되는가 열심히 트러블슈팅했는데...  zsh 때문이라니...

 

어쨌든 한단계를 더 거쳐줘야하는데  zsh파일에서 ~/.bash_profile 을 입력시켜주는것이다.

~/.zshrc  ~/.zshenv  ~/.zprofile 이 중에서 자신의 컴퓨터에 있는 폴더로 가서 지정해주면 된다. 

 

//vi 에디터를 이용해서 연다
vi ~/.zshrc 

//위와 같은 과정으로 아래의 코드를 입력시킨다. 해당하는 것만 입력하면 된다.
//나의 경우 ~/.bash_profile만 입력했다. 
source ~/.bash_profile
source ~/.bashrc
source ~/profile

 

이러면 정말로 끝! 

 

이제 터미널을 껐다켜서 다시 경로를 확인해봐도 지워지지않고 잘 뜨는 것을 확인할 수 있다. 

확인은 echo $PATH, java -version, javac -version의 3가지 방법으로 확인해볼 수 있다.

~ echo $PATH

~ java -version
~ javac -version

 

 


 

2. 기본 zsh 쉘일때 : ~/.zshrc 로 환경변수 설정

# vim에디터로 zsh설정파일을 연다. 
# 파일이 이미 있는경우 열리고, 없는 경우에는 새롭게 생성되며 열린다.
vi ~/.zshrc


# i를 누르고 ---INSERT--- 뜬다면 입력할수 있다. 이 두가지를 입력하자.
export JAVA_HOME=/Library/Java/JavaVirtualMachines/[jdk 설치 버전].jdk/Contents/Home
export PATH=${PATH}:$JAVA_HOME/bin

# 이후 ESC를 누른후 :wq 로 에디터를 빠져나오자
:wq

# vi에디터가 종료된후의 원경로에서 입력해준다
source ~/.zshrc

 

이후 마찬가지로 제대로 변수가 잡혔는지 터미널 명령어를 통해 확인한다.

~ echo $PATH 

# 버전 확인용 명령어
~ java -version
~ javac -version

 

하단 명령어를 쳤을때 버젼정보등이 같이 뜬다면 제대로 잡힌것이다.

 


 

- 궁금한 점 / 수정 요청사항 등은 언제든 댓글 달아주세요 :)

- 도움이 되셨다면 ❤️ 하트 한 번 눌러주세요! 감사합니다 ! 

'BACK-END > JAVA' 카테고리의 다른 글

맥(MAC)에서 자바기반 프로그램 설정 세팅  (0) 2021.02.22
Stream  (0) 2020.09.16
CMD&MAC 명령프롬프트 / JAVA 주석  (0) 2020.08.11
Variable & Constant  (0) 2020.08.10
JDK(Java Development Kit) & JAVA ?  (0) 2020.08.10

댓글