본문 바로가기

개발/Linux & DevOps

Linux Java tar gz 설치 완벽 정리 + 버전 컨트롤

서론

jdk 1.7 을 쓰다가 1.8을 써야하는 상황이 와서,
1.8을 설치하려고 하는데,

/usr/local/java...
/usr/bin/java/...
/usr/lib/jvm/...

뭐가 이렇게 디렉토리가 많아;;
두어시간을 해맸다.

/etc/profile 에서 export $JAVA_HOME 을 설정해도
java -version 하면 계속 1.7 만 나온다. 개빡친다

 

순서:

  • jdk tar 파일 압축해제
  • 환경변수 세팅
  • update-alternatives 명령어로 버전 컨트롤

 


처음 시작하는 분들은 차근차근 보시고,

핵심 결론만을 원하는 분은 여기로 넘어가자.

 

0. 다운로드된 jdk tar 파일을 준비한다.

 

1. 가장 처음 tar.gz 파일의 압축을 풀어야한다.

tar xvzf jdk-7u75-linux-x64.tar.gz
# tar 명령어 옵션 xvzf 의 의미가 궁금하다면 이 블로그에 잘 정리되어있다.

 

 

2. 압축 해제된 폴더를 /usr/local/java 에 mv 로 옮긴다.

  /usr/local/java 는 형식적으로 프로그램을 모아두는 곳일 뿐,
  시스템이 알아서 여기를 참고해서 실행시키고 그런건 없다.
  그저 국룰이다.

 

3. vi /etc/profile 환경변수 세팅

   편집기를 열어서 마지막줄에

JAVA_HOME=/usr/local/java/jdk1.7.0_75
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH

   를 추가한다. 환경변수 세팅이다.

 

4. source /etc/profile

   을 해줘야 반영이 된다.

   확인 하고 싶을 땐 echo $JAVA_HOME 을 입력하자.

 

여기까진 "세팅"이다. "설치"는 아직 안됐다.

앞에 모든 것은 파일을 들여와서 놓는 세팅일 뿐이다.


자바 실행 해보기

결국 실행되는 java 프로그램은 /usr/bin/java 이다.

이 java의 버전이 java -version 의 버전이고 실행되는 java의 버전이다.

 

여기에 있는 java의 버전을 바꾸기 위해선 update-alternatives 명령어를 써야한다.

 

리눅스 시스템에게 java의 위치를 지정하는 명령어 (모든 사용자를 위한 심볼릭 링크걸기)

# 명렁어 사용법: alternatives --install <링크> <이름> <경로> <우선순위>)
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk1.7.0_75/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk1.7.0_75/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jdk1.7.0_75/bin/javaws" 1

# 명렁어 사용법: alternatives --set <이름> <경로>
sudo update-alternatives --set java /usr/local/java/jdk1.7.0_75/bin/java
sudo update-alternatives --set javac /usr/local/java/jdk1.7.0_75/bin/javac
sudo update-alternatives --set javaws /usr/local/java/jdk1.7.0_75/bin/javaws

물론 디렉토리 이름의 1.7.0 이런건 본인 java 버전에 맞게 바꿔줘야한다.

 

추후 다른 자바 버전을 혼용할 때
alternatives --set java /your/path/to/jdk1.2.3.4/bin/java로
설치된 자바를 선택해 버전 컨트롤이 가능하다

 

 

 

참고글:

m.blog.naver.com/gyrbsdl18/173065238  

 

 

 

 

도움이 되셨다면 ♡공감 ↓광고클릭으로 저를 응원해주세요!!! :D

반응형