원문 :
OpenJdk 설치, 삭제, 업데이트
CentOS 6에서 OpenJDK 11 이상을 쓸려고 해서 찾은 것 중에..
정말 잘 정리되어 있는 포스트...
Oracle에서 Java를 유료화 하면서 상업적인 목적의 서버에 Java를 설치하고 사용할 경우 주의해야 합니다. 로컬 PC에서의 개발은 oracle, openjdk 상관없이 사용해도 문제가 없지만, 서버 환경에서의 사용은 저작권이 침해될 수 있으므로 openjdk를 설치해서 java 어플리케이션을 구동하는 것을 추천합니다.
JDK8 및 이전 버전 설치
ubuntu, debian 계열 리눅스 설치
$ sudo apt-get install openjdk-8-jdk
Reading package lists... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for ca-certificates (20170717~16.04.2) ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.16.04.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
JDK 삭제
$ sudo apt-get remove openjdk*
$ sudo apt-get autoremove --purge
Fedora, Centos, Redhat 계열 리눅스 설치
$ sudo yum -y install java-1.8.0-openjdk-devel
=======================================================================================================================
Package Arch Version Repository Size
=======================================================================================================================
java-1.8.0-openjdk x86_64 1:1.8.0.201.b09-0.amzn2 amzn2-core 259 k
Installing for dependencies:
alsa-lib x86_64 1.1.4.1-2.amzn2 amzn2-core 425 k
atk x86_64 2.22.0-3.amzn2.0.2 amzn2-core 258 k
avahi-libs x86_64 0.6.31-
=======================================================================================================================
Install 1 Package (+63 Dependent packages)
Total download size: 46 M
libpng.x86_64 2:1.5.13-7.amzn2.0.2 libthai.x86_64 0:0.1.14-9.amzn2.0.2
libwayland-client.x86_64 0:1.14.0-2.amzn2.0.1 libwayland-server.x86_64 0:1.14.0-2.amzn2.0.1
libxcb.x86_64 0:1.12-1.amzn2.0.2 libxshmfence.x86_64 0:1.2-1.amzn2.0.2
libxslt.x86_64 0:1.1.28-5.amzn2.0.2 lksctp-tools.x86_64 0:1.0.17-2.amzn2.0.2
mesa-libEGL.x86_64 0:17.2.3-8.20171019.amzn2.0.4
openjdk version "1.8.0_201"
OpenJDK Runtime Environment (build 1.8.0_201-b09)
OpenJDK 64-Bit Server VM (build 25.201-b09, mixed mode)
JDK 삭제
copy-jdk-configs-3.3-10.amzn2.noarch
java-1.8.0-openjdk-1.8.0.201.b09-0.amzn2.x86_64
java-1.8.0-openjdk-headless-1.8.0.201.b09-0.amzn2.x86_64
$ sudo yum -y remove copy-jdk-configs-3.3-10.amzn2.noarch
$ sudo yum -y remove java-1.8.0-openjdk-1.8.0.201.b09-0.amzn2.x86_64
$ sudo yum -y remove java-1.8.0-openjdk-headless-1.8.0.201.b09-0.amzn2.x86_64
JDK9 & later
최신버전의 jdk의 경우 apt-get이나 yum을 통해 업데이트가 늦기 때문에 다음 링크중 하나에서 openjdk 최신버전을 다운로드 받아 설치합니다.
다운로드
$ wget https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.3%2B7/OpenJDK11U-jdk_x64_linux_hotspot_11.0.3_7.tar.gz
압축해제
$ tar -xvf OpenJDK11U-jdk_x64_linux_hotspot_11.0.3_7.tar.gz
JAVA 설치 디렉토리로 이동
리눅스에서 Java는 /usr/lib/jvm 밑에 설치됩니다. 기존에 설치한 Java가 있다면 해당 경로에 이미 다른 Java가 존재할 것입니다. 디렉토리가 없는경우 생성하고 위에서 압축해제한 jdk11을 해당 디렉토리로 이동 시킵니다.
$ sudo mkdir /usr/lib/jvm
$ sudo mv jdk-11.0.3+7/ /usr/lib/jvm/openjdk-11.0.3+7
사용중인 jdk 링크 변경
update-alternative –install 명령을 통하여 아래와 같이 수동으로 설치한 jdk11을 시스템에 업데이트합니다.
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/openjdk-11.0.3+7/bin/java 1
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/openjdk-11.0.3+7/bin/javac 1
java 버전 변경
update-alternatives –install 실행후에 java 버전이 이전 버전으로 나온다면 update-alternatives –config 명령으로 java 버전을 선택해 줍니다.
penjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.16.04.1-b12)
$ sudo update-alternatives --config java
There are 2 programs which provide 'java'.
-----------------------------------------------
*+ 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-0.amzn2.x86_64/jre/bin/java)
2 /usr/lib/jvm/openjdk-11.0.3+7/bin/java
Enter to keep the current selection[+], or type selection number: 2
openjdk version "11.0.3" 2019-04-16
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.3+7)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.3+7, mixed mode)
$ sudo update-alternatives --config javac
There are 2 programs which provide 'javac'.
-----------------------------------------------
*+ 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-0.amzn2.x86_64/bin/javac)
2 /usr/lib/jvm/openjdk-11.0.3+7/bin/javac
Enter to keep the current selection[+], or type selection number: 2
이후의 최신 버전은 위의 방법을 반복하여 버전업하면 됩니다. 이전 버전인 jdk8로 돌아가야 하면 update-alternatives –config를 다시 실행하여 jdk8을 선택하면 됩니다.