Oracle에서 Java를 유료화 하면서 상업적인 목적의 서버에 Java를 설치하고 사용할 경우 주의해야 합니다. 로컬 PC에서의 개발은 oracle, openjdk 상관없이 사용해도 문제가 없지만, 서버 환경에서의 사용은 저작권이 침해될 수 있으므로 openjdk를 설치해서 java 어플리케이션을 구동하는 것을 추천합니다.
JDK8 및 이전 버전 설치
ubuntu, debian 계열 리눅스 설치
$ sudo apt-get install openjdk-8-jdk Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libvpx3 ......... 생략 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... done. done. $ java -version 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 $ sudo apt-get autoclean
Fedora, Centos, Redhat 계열 리눅스 설치
$ sudo yum -y install java-1.8.0-openjdk-devel Dependencies Resolved ======================================================================================================================= Package Arch Version Repository Size ======================================================================================================================= Installing: 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- Transaction Summary ....... 생략 ======================================================================================================================= Install 1 Package (+63 Dependent packages) Total download size: 46 M Installed size: 145 M Is this ok [y/d/N]: y 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 Complete! $ java -version 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 삭제
$ rpm -qa | grep 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 최신버전을 다운로드 받아 설치합니다.
https://adoptopenjdk.net/releases.html?variant=openjdk11&jvmVariant=hotspot
https://jdk.java.net/archive/
다운로드
$ 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 버전을 선택해 줍니다.
$ java -version 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'. Selection Command ----------------------------------------------- *+ 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 $ java -version 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'. Selection Command ----------------------------------------------- *+ 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 $ javac -version javac 11.0.3
이후의 최신 버전은 위의 방법을 반복하여 버전업하면 됩니다. 이전 버전인 jdk8로 돌아가야 하면 update-alternatives –config를 다시 실행하여 jdk8을 선택하면 됩니다.