update-alternatives 명령어를 사용해서 자바 버전 변경
centOS 에 기본 설치된 open-jdk 를 사용안하고 oracle 홈페이지에서 다운받아서 jdk 를 설치하고자 할때, 이미 설치된 OpenJDK 를 삭제해도 되지만 open-libre 등 자바를 사용하는 어플리케이션이 많아서 dependency 문제가 발생한다. (보통 그런 오피스 제품들을 사용안하기 때문에 다 지워버려도 되겠지만....)
기존 OpenJDK(1.8.0_65) 를 그대로 두고 오라클 jdk(1.8.0_66) 를 설치하고, update-altenatives 명령어를 이용하면 자바 기본 패스를 변경할 수 있다.
아래에서 jdk1.8.0_66 부분은 JDK 버전에 따라서 변경될 수 있다.
1. open-JDK 버전 확인(기존 설치된 java)
# java -version
openjdk version "1.8.0_65"
OpenJDK Runtime Environment (build 1.8.0_65-b17)
OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)
# ls /usr/lib/jvm
java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/ jre-1.8.0/ jre-1.8.0-openjdk/ jre-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/ jre-openjdk/
2. jdk 설치
# wget http://download.oracle.com/otn-pub/java/jdk/8u66-b17/jdk-8u66-linux-x64.tar.gz
# tar xvfz jdk-8u66-linux-x64.tar.gz
jdk1.8.0_66/
....
...
# mv jdk1.8.0_66 /usr/lib/jvm/jdk1.8.0_66
※ JDK 다운로드는 주소가 자주 바뀌기 때문에 홈페이지에서 직접 다운로드 하는 걸 권한다.
3. update-alternatives 명령어 실행
- /usr/bin 디렉토리에 javac, java 링크를 설정하고(--intall) 기본 패스를 선택한다(--config)
: --config 에서는 다음과 같이 사용하려고하는 오라클 jdk 를 선택한다.
# update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_66/bin/javac 1
# update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_66/bin/java 1
# update-alternatives --config javac
There is 1 program that provides 'javac'.
Selection Command
-----------------------------------------------
*+ 1 /usr/lib/jvm/jdk1.8.0_66/bin/javac
Enter to keep the current selection[+], or type selection number: 1
4. java 버전 확인
# java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
5. JAVA_HOME 설정
# vi ~/.bash_profile
PATH=$PATH:$HOME/bin:.
export PATH
export M2_HOME=/usr/local/maven
export PATH=${M2_HOME}/bin:${PATH}
export JAVA_HOME="/usr/lib/jvm/jdk1.8.0_66"
참고 사이트
'Engineering > Java' 카테고리의 다른 글
이클립스(STS) 에서 프로젝트 폴더 관리 (0) | 2016.03.24 |
---|---|
jackson 라이브러리 deserialize 오류 (0) | 2016.01.04 |
com.fasterxml.jackson.databind.ObjectMapper 와 org.codehaus.jackson.map.ObjectMapper 차이점 비교 (0) | 2015.11.18 |
Java's Primitive Data Types (0) | 2014.09.03 |
linux 에 maven(mvn) 설치 (1) | 2014.07.31 |