본문으로 바로가기

목차

    0. 설치 전 확인

    - 이 게시물은 Java(jdk)가 설치되어 있지 않다는 가정하에 진행합니다. 이미 Java가 설치되어 있다면 제거 후 설치를 해줍니다. 

    (CentOS 7을 설치하면 기본적으로 Java(jdk)가 설치되어 있는 경우가 있습니다.)

     

    - 다음과 같은 명령어를 이용해 Java(jdk)가 설치되어 있는지, 설치된 버전을 확인합니다.

    자바 버전 확인
    # java -version

    설치 되어 있는 자바 버전 확인
    # yum list installed | grep java

     

    - 다음 명령어를 이용해 위에서 조회한 기본으로 설치되어 있는 Java(jdk)를 제거해 줍니다.

    이미 설치 되어 있는 버전을 제거 합니다.
    # yum remove -y java-1.8.0-openjdk.x86_64
    # yum remove -y java-1.8.0-openjdk-headless.x86_64

     

    - 제거가 성공한 경우 다음과 같이 자바 버전을 확인해도 아무것도 나오지 않습니다.

    자바 버전 확인
    # java -version

     


    1. 설치

    - 설치 파일은 원하는 버전으로 다음과 같은 링크에서 Open Jdk 또는 Oracle Jdk를 다운로드하면 됩니다.

     

    [OpenJDK]

     

    JDK Builds from Oracle

     

    jdk.java.net

     

    GitHub - ojdkbuild/ojdkbuild: Community builds using source code from OpenJDK project

    Community builds using source code from OpenJDK project - GitHub - ojdkbuild/ojdkbuild: Community builds using source code from OpenJDK project

    github.com

     

    [Oracle Jdk]

    링크: https://www.oracle.com/java/technologies/javase-downloads.html

    1.1. 파일 다운로드

    - 명령어 wget을 이용해 원하는 버전의 Java(jdk) 리눅스 전용을 다운 받습니다.

    (필자는 OpenJdk 16.0.2를 다운로드하였습니다.)

    링크: https://download.java.net/java/GA/jdk16.0.2/d4a915d82b4c4fbb9bde534da945d746/7/GPL/openjdk-16.0.2_linux-x64_bin.tar.gz

    원하는 경로에 설치하면 됩니다. 
    필자는 리눅스 디렉터리 구조를 따르기 위해(관리를 위해) 다음과 같은 경로에 설치 했습니다.
    (/usr/lib: 프로그램과 서브시스템을 위한 변경되지 않는 데이터 파일)
    
    # cd /usr/lib
    
    # wget https://download.java.net/java/GA/jdk16.0.2/d4a915d82b4c4fbb9bde534da945d746/7/GPL/openjdk-16.0.2_linux-x64_bin.tar.gz
    
    --2021-07-21 13:02:46--  https://download.java.net/java/GA/jdk16.0.2/d4a915d82b4c4fbb9bde534da945d746/7/GPL/openjdk-16.0.2_linux-x64_bin.tar.gz
    Resolving download.java.net (download.java.net)... 23.40.44.87
    Connecting to download.java.net (download.java.net)|23.40.44.87|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 184349266 (176M) [application/x-gzip]
    Saving to: ‘openjdk-16.0.2_linux-x64_bin.tar.gz’
    
    100%[====================================================================================================================>] 184,349,266 43.3MB/s   in 5.2s
    
    2021-07-21 13:02:56 (33.6 MB/s) - ‘openjdk-16.0.2_linux-x64_bin.tar.gz’ saved [184349266/184349266]​

    1.2. 압축 풀기

    - 다운로드한 Java(jdk) 파일의 압축을 풀어 줍니다.

    # tar -zxvf openjdk-16.0.2_linux-x64_bin.tar.gz

    1.3. 확인

    - 설치된 파일이 잘 실행이 잘 되는지 확인해 봅니다.

    # /usr/lib/jdk-16.0.2/bin/java -version
    openjdk version "16.0.2" 2021-07-20
    OpenJDK Runtime Environment (build 16.0.2+7-67)
    OpenJDK 64-Bit Server VM (build 16.0.2+7-67, mixed mode, sharing)
    
    # /usr/lib/jdk-16.0.2/bin/javac -version
    javac 16.0.2

     


    2.  환경 변수 설정

    - 다운로드한 경로를 환경변수로 등록합니다. 

    2.1 환경 변수 등록

    - /etc/profile를 vi툴을 이용해 파일을 열어 줍니다.

    # vi /etc/profile

     

    - Shift + G를 눌러 해당 파일의 가장 마지막 줄로 이동해 아래 내용을 추가한 뒤 저장합니다.

    (위에서 조회한 경로를 넣어 줍니다.)

    export JAVA_HOME=/usr/lib/jdk-16.0.2

     

    - 아래의 명령어를 이용해 수정한 파일을 저장해 줍니다.

    # source /etc/profile

    2.3 등록된 환경 변수 확인

    - 아래처럼 환경 변수가 잘 적용되었는지 확인해봅니다.

    # echo $JAVA_HOME
    /usr/lib/jdk-16.0.2

     

    - 현재 CentOS7에 설정되어 있는 모든 환경 변수를 확인하고 싶으면 다음 명령어를 사용합니다.

    # export
    declare -x DISPLAY="localhost:11.0"
    declare -x HISTCONTROL="ignoredups"
    declare -x HISTSIZE="1000"
    declare -x HOME="/root"
    declare -x HOSTNAME="localhost.localdomain"
    declare -x JAVA_HOME="/usr/lib/jdk-16.0.2"
    declare -x LANG="ko_KR.UTF-8"
    declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
    declare -x LOGNAME="root"
    declare -x MAIL="/var/spool/mail/root"
    declare -x OLDPWD="/usr/lib"
    declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
    declare -x PWD="/usr/lib/jdk-16.0.2"
    declare -x SELINUX_LEVEL_REQUESTED=""
    declare -x SELINUX_ROLE_REQUESTED=""
    declare -x SELINUX_USE_CURRENT_RANGE=""
    declare -x SHELL="/bin/bash"
    declare -x SHLVL="1"
    declare -x SSH_TTY="/dev/pts/1"
    declare -x TERM="xterm"
    declare -x USER="root"
    declare -x XDG_RUNTIME_DIR="/run/user/0"
    declare -x XDG_SESSION_ID="14"​

     


    3.  Alias(별칭) 설정

    - wget을 이용해 Java(jdk)을 직접 설치한 경우엔 Java 명령어를 사용할려면 직접 경로를 접근해서 사용해야되서 매우 불편합니다. 이를 해결하기 위한 방법은 여러가지가 있는데 Alias(별칭) 설정을 해줍니다.

    (Alias(별칭) 설정 말고도 환경변수, 심볼릭 링크를 사용해서 해결 할 수 있습니다.)

    # java -version
    bash: java: 명령을 찾을 수 없습니다...

    3.1. Alias 등록

    - 적용 범위에 따라 bashrc파일을 vi 편집기로 열어 Alias를 등록해 줍니다. 

    (필자는 모든 사용자에 적용했습니다.)

    = /etc/bashrc (모든 사용자 적용)

    = ~/.bashrc (해당 사용자 적용)

    # vi /etc/bashrc

     

    - Shift + G를 눌러 해당 파일의 가장 마지막 줄로 이동해 아래 내용을 추가한 뒤 저장합니다.

    (설치한 경로의 bin경로에 있는 java실행파일, javac실행파일의 경로를 다음과 같이 등록해 줍니다.)

    alias java="/usr/lib/jdk-16.0.2/bin/java"
    alias javac="/usr/lib/jdk-16.0.2/bin/javac"

     

    - 아래의 명령어를 이용해 수정한 파일을 저장해 줍니다.

    # source /etc/bashrc

    3.1. Alias 확인

    - 적용이 잘 되었는지 버전 확인, which 명령어를 통해 확인해 봅니다.

    # java -version
    openjdk version "16.0.2" 2021-07-20
    OpenJDK Runtime Environment (build 16.0.2+7-67)
    OpenJDK 64-Bit Server VM (build 16.0.2+7-67, mixed mode, sharing)
    
    # javac -version
    javac 16.0.2
    
    # which java
    alias java='/usr/lib/jdk-16.0.2/bin/java'
            /usr/lib/jdk-16.0.2/bin/java