급하게 Linux 서버에 JDK 를 설치할 일이 생겼습니다. CentOS 에서는 JDK를 어떻게 설치하고 버전을 관리하는지 살펴보겠습니다.
설치 파일 다운로드
JDK 다운로드 페이지 에서 리눅스 버전용 JDK를 다운로드 받을 수 있습니다. 32비트, 64비트를 확인해서 받으신 후 WinSCP 같은 FTP 툴을 이용해서 옮깁니다.
다른 방법으로는 웹 상의 파일 다운로드 명령어인 wget
을 이용해서 바로 받을 수 있습니다. 다운로드 페이지에서 원하는 버전 다운로드 링크 주소를 복사해서 다음처럼 명령어를 입력하시면 됩니다.
1 $ wget --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gz
혹시나 wget
이 없다면 다음 명령어로 설치하시면 됩니다.
설치하기
설치는 그냥 원하시는 폴더에 압축을 풀면 끝납니다.
1 2 3 4 5 6 7 8 # 디렉토리 생성 $ mkdir /usr/local/java # 파일 이동 $ mv jdk-8u171-linux-x64.tar.gz /usr/local/java # 압축 해제 $ tar xvzf jdk-8u171-linux-x64.tar.gz
버전 관리하기
alternatives
명령어는 심볼릭 링크를 관리할 수 있는 툴입니다. 이를 이용해서 설치된 자바 버전 중 필요한 자바 버전을 선택해 심볼릭 링크를 설정해줄 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 $ alternatives alternatives version 1.7.4 - Copyright (C) 2001 Red Hat, Inc. This may be freely redistributed under the terms of the GNU Public License. usage: alternatives --install <link> <name> <path> <priority> [--initscript <service>] [--family <family>] [--slave <link> <name> <path>]* alternatives --remove <name> <path> alternatives --auto <name> alternatives --config <name> alternatives --display <name> alternatives --set <name> <path> alternatives --list common options: --verbose --test --help --usage --version --keep-missing --altdir <directory> --admindir <directory>
심볼릭 링크 생성하기
1 2 3 4 5 6 7 $ alternatives --install /usr/bin/java java /usr/local/java/jdk1.8.0_171/bin/java 1 $ alternatives --install /usr/bin/java javac /usr/local/java/jdk1.8.0_171/bin/javac 1 $ alternatives --install /usr/bin/java javaws /usr/local/java/jdk1.8.0_171/bin/javaws 1 $ alternatives --set java /usr/local/java/jdk1.8.0_171/bin/java $ alternatives --set javac /usr/local/java/jdk1.8.0_171/bin/javac $ alternatives --set javaws /usr/local/java/jdk1.8.0_171/bin/javaws
심볼릭 링크 설정하기
1 $ alternatives --config java
위 명령어를 입력하면 java 로 정의된 심볼릭 링크들을 볼 수 있는데 제가 몇 번 삽질해서 잘못 등록한 자바 버전들을 볼 수 있습니다. 여기서 특정 버전을 골라서 선택할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 $ alternatives --config java There are 4 programs which provide 'java'. Selection Command ----------------------------------------------- + 1 /usr/local/java/jdk1.8.0_171/bin/java 2 /usr/local/java/jdk1.8.0_112/bin/java * 3 /bin/java 4 /usr/local/java/jdk1.8.0_171//bin/java Enter to keep the current selection[+], or type selection number:
심볼릭 링크 삭제
잘못 등록한 심볼릭 링크를 삭제해보겠습니다.
1 $ alternatives --remove java /usr/local/java/jdk1.8.0_171//bin/java
심볼릭 링크 리스트 조회
--list
옵션으로 잘 정의되었는지 확인해보겠습니다.
1 2 3 4 $ alternatives --list java manual /usr/local/java/jdk1.8.0_171/bin/java javac manual /usr/local/java/jdk1.8.0_171/bin/javac javaws manual /usr/local/java/jdk1.8.0_171/bin/javaws
JAVA_HOME 환경변수 설정하기
/etc/profile
파일 밑에 다음 명령어를 추가하시면 됩니다.
1 2 3 4 5 $ vi /etc/profile export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::") # 변경 사항 반영 $ . /etc/profile
설치 확인하기
1 2 3 4 5 $ java -version java version "1.8.0_171" Java(TM) SE Runtime Environment (build 1.8.0_171-b11) Java HotSpot(TM) Client VM (build 25.171-b11, mixed mode)
이상으로 CentOS 7 에서 JDK 를 설치하고 버전 관리하는 법을 알아봤습니다.