CentOs7에 jdk 설치 및 환경변수(JAVA_HOME)설정

개발환경

CentOs7(Nas 가상머신), putty, yum

CentOs7 jdk 설치하기

centOs의 쉘에 아래 명령으로 현재 설치가능한 jdk 버전확인

1
yum list java*jdk-devel

실행결과

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@localhost ~]# yum list java*jdk-devel
Loaded plugins: fastestmirror, langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Determining fastest mirrors
* base: mirror.kakao.com
* extras: mirror.kakao.com
* updates: mirror.kakao.com
Available Packages
java-1.6.0-openjdk-devel.x86_64 1:1.6.0.41-1.13.13.1.el7_3 base
java-1.7.0-openjdk-devel.x86_64 1:1.7.0.171-2.6.13.0.el7_4 updates
java-1.8.0-openjdk-devel.i686 1:1.8.0.161-0.b14.el7_4 updates
java-1.8.0-openjdk-devel.x86_64 1:1.8.0.161-0.b14.el7_4 updates
[root@localhost ~]#

조회된 결과중에 java-1.8.0-openjdk-devel.x86_64 버전을 설치해보자 쉘에 아래 명령어를 입력하자.

1
yum install java-1.8.0-openjdk-devel.x86_64

뭔가 진행이되며 중간중간 뭔가를 물어보는데 y를 눌러주면서 진행하면 된다. 생각보다 시간이 좀 걸린다.

실행결과

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  '생략...'
Verifying : 1:java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64 22/25
Verifying : nss-softokn-freebl-3.16.2.3-13.el7_1.x86_64 23/25
Verifying : nspr-4.10.8-2.el7_1.x86_64 24/25
Verifying : nss-util-3.19.1-4.el7_1.x86_64 25/25

Installed:
java-1.8.0-openjdk-devel.x86_64 1:1.8.0.161-0.b14.el7_4

Dependency Installed:
copy-jdk-configs.noarch 0:2.2-5.el7_4 nss-pem.x86_64 0:1.0.3-4.el7

Dependency Updated:
chkconfig.x86_64 0:1.7.4-1.el7
java-1.8.0-openjdk.x86_64 1:1.8.0.161-0.b14.el7_4
java-1.8.0-openjdk-headless.x86_64 1:1.8.0.161-0.b14.el7_4
nspr.x86_64 0:4.13.1-1.0.el7_3
nss.x86_64 0:3.28.4-15.el7_4
nss-softokn.x86_64 0:3.28.3-8.el7_4
nss-softokn-freebl.x86_64 0:3.28.3-8.el7_4
nss-sysinit.x86_64 0:3.28.4-15.el7_4
nss-tools.x86_64 0:3.28.4-15.el7_4
nss-util.x86_64 0:3.28.4-3.el7
ntsysv.x86_64 0:1.7.4-1.el7

Complete!
[root@localhost ~]#

CentOs7 jdk 설치 결과 확인

1
2
3
4
5
[root@localhost ~]# javac -version
javac 1.8.0_161
[root@localhost ~]# rpm -qa java*jdk-devel
java-1.8.0-openjdk-devel-1.8.0.161-0.b14.el7_4.x86_64
[root@localhost ~]#

위 처럼 jdk 설치 완료를 확인 할 수 있다.


CentOs7 jdk 환경변수 설정

일단 현재 JAVA_HOME이 설정 되어 있는지 확인하자.

1
2
3
[root@localhost ~]# echo $JAVA_HOME

[root@localhost ~]#

JAVA_HOME이 설정이 안되어 있는 것을 확인했다.

javac 위치 확인

1
2
3
4
5
[root@localhost ~]# which javac
/usr/bin/javac
[root@localhost ~]# readlink -f /usr/bin/javac
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/bin/javac
[root@localhost ~]#

which javac라는 명령어는 javac라는 명령어의 위치를 알려달라는 말이다. /usr/bin/javac 는 심볼릭 링크 이므로 원본 파일의 위치를 찾기 위해 readlink -f /usr/bin/javac 명령어를 사용하였다. readlink -f는 심볼릭 링크에서 원본파일을 추출하는 명령어 이다. 즉 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/bin/javac 가 쉘에서 동작하고 있는 javac명령어의 원본파일이다. /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64 가 JAVA_HOME이 될 경로가 된다.

$JAVA_HOME 설정

실제 javac명령어의 경로를 찾았으니 그 경로를 이용하여 JAVA_HOME 환경변수로 등록하도록 하자. 환경변수를 설정할수 있는 profile 이라는 파일을 vi 편집기로 열자

1
vi /etc/profile

해당 파일의 하단에 아래 내용을 추가한뒤 저장하자.

1
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64

파일을 저장한뒤 아래 명령어를 이용하여 수정한 파일을 적용하자. ssh를 재접속 해도 되지만 아래 방법이 더 편하다.

1
source /etc/profile

아래처럼 JAVA_HOME 재대로 적용되었는지 확인해 보자.\

실행결과

1
2
3
4
5
[root@localhost ~]# source /etc/profile
[root@localhost ~]# echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
[root@localhost ~]# $JAVA_HOME/bin/javac -version
javac 1.8.0_161

끝!