OpenJDK 11 설치하기
Ubuntu에 Java를 설치하려는데, OpenJDK와 Oracle JDK 중 어떤 것을 선택해야 할까요?
OpenJDK 는 Java SE(Standard Edition)의 오픈소스 구현체입니다. Oracle JDK와 성능이 실질적으로 동일하며, Ubuntu 공식 패키지 저장소에서 바로 설치할 수 있어 관리가 편리합니다.
OpenJDK vs Oracle JDK
Java를 설치할 때 OpenJDK와 Oracle JDK 중 어떤 것을 선택할지 고민하게 됩니다. 두 JDK의 핵심 차이는 다음과 같습니다.
| 항목 | OpenJDK | Oracle JDK |
|---|---|---|
| 라이선스 | GPL v2 (무료) | Oracle 라이선스 (상용 환경에서 유료 가능) |
| ** 소스 코드** | 완전 오픈소스 | OpenJDK 기반 + Oracle 독자 코드 |
| ** 성능** | 실질적으로 동일 | 실질적으로 동일 |
| ** 지원** | 커뮤니티 및 배포판별 지원 | Oracle 공식 지원 (유료) |
** 대부분의 개발 환경과 프로덕션 서버에서는 OpenJDK로 충분합니다.** Ubuntu의 공식 패키지 저장소에서 바로 설치할 수 있어 관리도 편리합니다.
설치 방법
1. 패키지 목록 업데이트
sudo apt update
2. OpenJDK 11 설치
sudo apt install -y openjdk-11-jdk
openjdk-11-jdkvsopenjdk-11-jre:jdk는 컴파일러(javac)를 포함한 개발 도구 전체를,jre는 실행 환경만 포함합니다. 개발 용도라면jdk를 설치합니다.
3. 설치 확인
java -version
openjdk version "11.0.x" 2024-xx-xx
OpenJDK Runtime Environment (build 11.0.x+x-Ubuntu-xxxx)
OpenJDK 64-Bit Server VM (build 11.0.x+x-Ubuntu-xxxx, mixed mode, sharing)
JAVA_HOME 환경 변수 설정
많은 Java 기반 도구(Maven, Gradle, Tomcat 등)는 JAVA_HOME 환경 변수를 참조합니다. 아래와 같이 설정합니다.
1. 설치 경로 확인
sudo update-alternatives --list java
출력 예시: /usr/lib/jvm/java-11-openjdk-amd64/bin/java
2. 환경 변수 등록
~/.bashrc (또는 ~/.zshrc) 파일에 아래 내용을 추가합니다.
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
설정을 적용합니다.
source ~/.bashrc
3. 설정 확인
echo $JAVA_HOME
여러 JDK 버전 관리 (alternatives)
Ubuntu에서는 update-alternatives 시스템을 통해 여러 JDK 버전을 설치하고 전환할 수 있습니다.
# 설치된 Java 버전 목록 확인 및 전환
sudo update-alternatives --config java
위 명령어를 실행하면 설치된 Java 버전 목록이 표시되며, 번호를 입력하여 기본 버전을 변경할 수 있습니다.
주의할 점
JAVA_HOME 미설정으로 빌드 도구 오류
Maven, Gradle, Tomcat 등은 JAVA_HOME 환경 변수를 참조합니다. java -version이 정상 출력되어도 JAVA_HOME이 설정되어 있지 않으면 빌드 도구가 JDK를 찾지 못해 에러가 발생합니다.
jdk vs jre 패키지 혼동
openjdk-11-jre는 실행 환경만 포함하고 컴파일러(javac)가 없습니다. 개발 용도라면 반드시 openjdk-11-jdk를 설치합니다.
정리
| 항목 | 설명 |
|---|---|
| 설치 | sudo apt install -y openjdk-11-jdk |
| 설치 확인 | java -version |
| JAVA_HOME 설정 | ~/.bashrc에 export JAVA_HOME=... 추가 |
| 다중 버전 전환 | sudo update-alternatives --config java |
| OpenJDK vs Oracle JDK | 성능 동일, OpenJDK는 무료(GPL v2) |