CentOS 8에서 OpenJDK 8, OpenJDK 11 및 Oracle Java 8 설치

요약 이미지: CentOS와 Java 로고를 보여주는 삽화
목적 및 대상
이 문서는 CentOS 8 서버에 OpenJDK 11, OpenJDK 8을 설치하고 필요 시 Oracle Java 8을 설치하는 방법을 설명합니다. 시스템 관리자나 개발자가 빠르게 Java 런타임/개발 키트를 준비하도록 돕습니다.
중요 용어 한 줄 정의:
- OpenJDK: 오픈소스 Java 구현체.
- Oracle Java: Oracle에서 제공하는 상업용(또는 라이선스가 있는) Java 배포판.
요구 사항
- CentOS 8이 실행되는 서버
- 루트(root) 권한 또는 sudo 권한
OpenJDK 11 설치
먼저 CentOS 8 저장소에서 사용 가능한 JDK 패키지를 검색합니다:
dnf search jdk
(명령 출력 예시 — 실제 환경에서는 출력이 다를 수 있습니다.)
Last metadata expiration check: 1:23:41 ago on Wednesday 18 December 2019 02:23:23 AM EST.
========================================================= Summary & Name Matched: jdk =========================================================
java-11-openjdk-demo.x86_64 : OpenJDK Demos 11
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos 8
java-11-openjdk-jmods.x86_64 : JMods for OpenJDK 11
java-11-openjdk-src.x86_64 : OpenJDK Source Bundle 11
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle 8
java-11-openjdk.x86_64 : OpenJDK Runtime Environment 11
copy-jdk-configs.noarch : JDKs configuration files copier
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment 8
java-11-openjdk-javadoc.x86_64 : OpenJDK 11 API documentation
java-1.8.0-openjdk-javadoc.noarch : OpenJDK 8 API documentation
java-11-openjdk-devel.x86_64 : OpenJDK Development Environment 11
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment 8
java-11-openjdk-headless.x86_64 : OpenJDK Headless Runtime Environment 11
java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK 8 accessibility connector
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Headless Runtime Environment 8
java-11-openjdk-javadoc-zip.x86_64 : OpenJDK 11 API documentation compressed in a single archive
java-1.8.0-openjdk-javadoc-zip.noarch : OpenJDK 8 API documentation compressed in a single archive
============================================================ Summary Matched: jdk =============================================================
icedtea-web.noarch : Additional Java components for OpenJDK - Java browser plug-in and Web Start implementation
OpenJDK 11 개발 패키지를 설치합니다:
dnf install java-11-openjdk-devel.x86_64
설치 완료 후 Java 버전을 확인합니다:
java -version
예시 출력:
openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)
중요: 프로덕션 환경에서는 LTS(Long-Term Support) 버전을 우선 고려하세요.
OpenJDK 8 설치
일부 레거시 Java 기반 애플리케이션은 OpenJDK 8만 지원합니다. OpenJDK 8을 설치하려면:
dnf install java-1.8.0-openjdk-devel
설치 후 버전 확인:
java -version
예시 출력:
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
Java 버전 간 전환 방법
한 시스템에 여러 Java 버전을 설치한 상태에서 기본 java 실행 파일을 전환하려면 alternatives 명령을 사용합니다:
alternatives --config java
실행하면 다음과 유사한 선택 화면이 나옵니다:
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
1 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.5.10-0.el8_0.x86_64/bin/java)
*+ 2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el8_0.x86_64/jre/bin/java)
Enter to keep the current selection[+], or type selection number: 1
전환할 버전 번호를 입력하고 Enter를 누르면 기본 java 실행 파일이 변경됩니다. 변경 후 다시 java -version
으로 활성 버전을 확인하세요.
팁: JDK가 아닌 JRE 위치를 변경하려면 alternatives에서 관련 항목(java, javac, javaws 등)을 각각 설정할 수 있습니다.
Oracle Java 8 설치
Oracle Java(Oracle JDK)는 Oracle 웹사이트에서 RPM 패키지를 내려받아 설치합니다. 라이선스와 배포 정책을 확인한 뒤 진행하세요.
- Oracle Java 8 JDK 다운로드 페이지에 접속하여 라이선스에 동의하고 jdk-8u231-linux-x64.rpm 파일을 다운로드합니다.
- 다운로드한 RPM이 서버에 있으면 다음 명령으로 설치합니다:
dnf localinstall jdk-8u231-linux-x64.rpm
설치 후 버전 확인:
java -version
예시 출력:
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
중요: Oracle JDK는 라이선스에 따라 상용 사용 시 요건이 있을 수 있습니다. 사용 목적에 따라 OpenJDK로 대체가 가능한지 검토하세요.
문제 발생 시 점검 항목 (체크리스트)
- dnf를 최신 메타데이터로 업데이트했는가? (
dnf makecache
또는dnf update
) - 설치 후 PATH나 JAVA_HOME이 수동으로 설정되어 기본 java를 덮어쓰고 있지 않은가?
- alternatives에 올바른 경로가 등록되어 있는가? (
alternatives --display java
) - 설치한 패키지 아키텍처(x86_64 등)가 시스템과 일치하는가?
- Oracle RPM을 설치할 때 파일 무결성/다운로드가 정상인가?
전환 실패 시 대처(간단 가이드)
- alternatives 설정을 수동으로 제거 및 재등록:
alternatives --remove java /path/to/java
alternatives --install /usr/bin/java java /path/to/java 1
- JAVA_HOME을 /etc/profile.d/java.sh에 export로 설정 후 로그아웃/로그인하여 반영
- 시스템 전역 심볼릭링크를 직접 변경하지 마세요. alternatives를 사용하세요.
대체 방법 및 권장 도구
- SDKMAN!: 개발자 환경에서 여러 JDK 버전을 관리할 때 편리합니다. 사용자 레벨에서 JDK 전환이 필요하면 SDKMAN!을 검토하세요.
- 컨테이너화: 특정 애플리케이션마다 서로 다른 Java 버전이 필요한 경우 Docker 컨테이너로 격리하는 것이 안전합니다.
관리자용 체크리스트 (역할 기반)
시스템 관리자:
- 저장소에서 패키지 서명과 출처를 확인
- /etc/alternatives 상태 모니터링
- 보안 패치 적용 정책 수립
개발자:
- 로컬 개발 환경과 CI에서 동일한 JDK 버전 사용
- 빌드 스크립트에서 JAVA_HOME을 명시적으로 설정
명령어 요약(치트 시트)
- OpenJDK 11 설치:
dnf install java-11-openjdk-devel.x86_64
- OpenJDK 8 설치:
dnf install java-1.8.0-openjdk-devel
- Oracle JDK 설치:
dnf localinstall jdk-8u231-linux-x64.rpm
- 버전 전환:
alternatives --config java
- 현재 대안 설정 보기:
alternatives --display java
선택 가이드(간단 플로우)
flowchart TD
A[어떤 Java가 필요한가?] --> B{레거시'8' 필요?}
B -- 예 --> C[OpenJDK 8 또는 Oracle JDK 8 설치]
B -- 아니오 --> D{장기 지원'LTS' 필요?}
D -- 예 --> E[OpenJDK 11 설치]
D -- 아니오 --> F[최신 JDK 또는 애플리케이션 요구사항 확인]
C --> G[alternatives로 전환]
E --> G
F --> G
간단 용어집
- JDK: Java Development Kit, 개발자용 도구 모음
- JRE: Java Runtime Environment, 애플리케이션 실행에 필요한 런타임
- alternatives: 대체 시스템으로 여러 버전의 동일 명령을 관리
결론
CentOS 8에서는 dnf를 통해 OpenJDK 11과 8을 쉽게 설치할 수 있으며, alternatives 명령으로 기본 Java 버전을 전환할 수 있습니다. Oracle JDK는 Oracle 사이트에서 RPM을 내려받아 dnf localinstall로 설치합니다. 운영 환경에서는 라이선스와 보안 업데이트 정책을 고려하여 OpenJDK와 Oracle JDK 중 적합한 배포판을 선택하세요.