CentOS7 JDK 설치 및 버전 관리

🗓 ⏰ 소요시간 11 분

급하게 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
$ yum install wget -y

설치하기

설치는 그냥 원하시는 폴더에 압축을 풀면 끝납니다.

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 를 설치하고 버전 관리하는 법을 알아봤습니다.