티스토리 뷰

Mint 리눅스는  데비안계열이다. 우분투가 데비안계열인데, 우분투를 계승(?)하며 만들어졌으니, 손자뻘(?)이랄까?

하여간, Mint리눅스에는 기본적으로 OpenJDK가 설치된다. java관련 작업시 이를 사용하면 편리할 것이다. 그러나, 개인의 기호에 따라, 선호하는 JDK가 다를 수 있다. 또는, 개발완료된 자바응용이 특정 벤더의(예를 들어, SUN/ORACLE) JDK를 사용해야 하는 필요가 있을 수 있다. 리눅스/유닉스에 능한 사용자라면, 이를 달성하기 위해 할 수 있는 방법이 다수개 존재할 것이다. 

그런데, 동시에 다수개의 JDK를 설치해 놓고 이를 스위칭해가면서 사용할 수 있다면 편리할 것이다. 스위칭하는 방법이야 다수 존재할 수 있겠지만, 이를 체계적으로 관리하도록 만들어진 유틸리티가 있으니, 이것이 'update-alternatives'라는 유틸리티이다.

거두 절미하고, 다음 시나리오를 해결하는 방법을 설명하도록 한다.

"이미 OpenJDK가 설치되어 있는 시스템이 있다. 이 장비에 SUN/ORACLE JDK를 설치하고, 후자를 기본적인 JAVA머신으로 사용하도록 하고자 한다."


1. 이미 OpenJDK가 설치되어 있음

2. SUN/ORACLE java를 설치(나의 경우, gz압축본을 다운받아 압축을 해제해서 설치했음)

    설치한 디렉터리는 : /usr/java/jdk1.7.0_21/

3.  sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk1.7.0_21/bin/java" 1

4. sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/java/jdk1.7.0_21/bin/javac" 1

5. sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/java/jdk1.7.0_21/bin/javaws" 1

6. sudo update-alternatives --config java

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status

------------------------------------------------------------

  0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      auto mode

* 1            /usr/java/jdk1.7.0_21/bin/java                            1         manual mode

  2            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode 


 *  여기서는 1번이 될 것이다. 0번은 OpenJDK이고. 2번은 OpenJRE이다.
어떤 것을 디폴트로 할지 물어 보는데, 1을 입력하고 엔터를 입력하여 1 번을 선택해준다.

7. java -version

java version "1.7.0_21"

Java(TM) SE Runtime Environment (build 1.7.0_21-b11)

Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)

---- 끝.

팁) Fedora/centOS/RedHat은 사촌간이니 대동소이하다.

* fedora에서도 /usr/sbin/alternatives를 사용하여 유사한 작업을 할 수 있다.

http://www.lamolabs.org/blog/5562/5-minute-guide-to-using-the-alternatives-command-on-fedoracentosrhel/

* 아래는 CentOS의 사례이다. 

There seem to be too many version of java on my machine right now. To add to my misery there is openjdk, gcj, sun java 1.4, 1.5, 1.6 all install. However unix allows for quick configuration of jvms using update-alternatives.
To install/ register a JVM use the following

1
2
/usr/sbin/alternatives --install "/usr/bin/java" "java" "/usr/java/default/bin/java" 2
/usr/sbin/alternatives --install "/usr/bin/javac" "javac" "/usr/java/default/bin/javac" 2

And to configure systemwide changes use

3
4
/usr/sbin/alternatives --configure java
/usr/sbin/alternatives --configure javac