본문 바로가기
Server&Infra/Linux

CentOS 7 jdk 설치하기(OpenJDK 11)

by Deoking 2022. 11. 30.
반응형

Overview

OpenJDK에 대해 간단히 알아보고 CentOS 7 환경에서 OpenJDK 11을 설치해보겠습니다.


Open JDK 란?

 

Java로 프로그래밍을 하기 위해서는 “자바 개발 키트(JDK, Java Development Kit)”가 필요합니다. 
JDK는 자바를 컴파일할 수 있는 “자파 컴파일러(javac, Java Compiler)”와 자바를 실행하기 위한 환경 “자바 런타임 환경(JRE, Java Runtime Environment)”이 포함되어 있고, JRE에는 “자바 가상 머신(JVM, Java Virtual Machine)”과 실행에 필요한 “자바 클래스 라이브러리(Java Class Libraries)”를 포함하고 있습니다.

JDK = JRE + Development Tools(javac, java 등)
JRE = JVM + Library Classes

이런 JDK는 크게 오픈소스 구현체인 OpenJDK와 폐쇄적 상업 코드 기반  OracleJDK로 나뉩니다. 큰 차이로는 OpenJDK의 경우 무료 라이선스이고 OracleJDK는 일부 유료 라이선스를 포함하고 있습니다. 때문에 OracleJDK의 경우 부가적인 기능 옵션을 제공하고 있으며, 릴리스에 대한 장기적 지원으로 안정성을 보장합니다. 하지만 OpenJDK도 오픈소스 기반으로 빠르게 성장하고 있고 세계적인 기업들에서 OpenJDK 기반의 자체 빌드를 배포하고 있습니다. 대표적으로 Red Hat, Azul Systems, IBM, Apple Inc. 등이 있습니다.

결론적으로 두 JDK 간 기술적 차이는 없으며 OpenJDK를 운영환경에서 사용해도 전혀 문제가 되지 않는다.  
비용 발생 없이 상업적 용도로 사용하려는 경우도 OpenJDK 사용하시면 됩니다.

 

 

Open JDK 11 설치하기

1. JDK 설치

yum으로 설치 가능한 jdk 확인합니다.

yum list java*jdk-devel

 

원하는 버전으로 설치를 진행합니다.

sudo yum install java-11-openjdk-devel.x86_64

 

설치 확인 목적으로 버전 확인.

java -version
javac -version

 

2. 환경변수 설정

Java를 이용하는 다른 프로그램을 위해 환경 변수를 설정합니다.
참고로 OpenJDK를 설치만 해도 기본적으로 심볼릭 링크가 걸리기 때문에 명령어를 실행할 수 있습니다.

우선, 설치 경로를 확인합니다.

readlink -f /usr/bin/javac

# 결과 예시
# /usr/lib/jvm/java-11-openjdk-11.0.12.0.7-0.el7_9.x86_64/bin/javac

 

설정을 위해 .bash_profile 파일을 엽니다.

vi ~/.bash_profile

 

JAVA_HOME 변수로 jdk의 경로를 설정합니다.

# <.bash_profile>

...
# 추가
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.17.0.8-2.el7_9.x86_64

 

설정을 적용합니다.

source ~/.bash_profile
echo $JAVA_HOME

 

3. 테스트

JDK가 잘 서치 되었는지 확인하기 위해 컴파일 테스트를 해봅니다.
간단한 Java class 파일을 생성합니다.

# sudo vim HelloWorld.java
public class HelloWorld{
   public static void main(String[] args){
        System.out.println("Hello World!!");
   }
}

 

Java 파일을 컴파일 하고 실행시켜 봅니다.

javac HelloWorld.java
java HelloWorld
Hello World!! # 결과

 

이상으로 설치가 완료되었습니다.


Conclusion

Open JDK를 설치하는 방법에 대해 알아보았습니다.
다양한 JDK 배포 버전이 있기 때문에 라에선스 및 업데이트 지원, TCK 인증 확인 등을 고려하여 선택하시는걸 권장드리겠습니다.
-
본 글은 개인적 기록을 목적으로 작성하였습니다.
작게나마 도움 되셨기를 바라며, 더 좋은 의견이나 잘못된 부분이 있다면 댓글을 남겨주세요~

 

반응형

댓글