Ubuntu 22.04|20.04|18.04에 Java JDK 21(OpenJDK 21) 설치
Java가 새로 출시될 때마다 수많은 새로운 기능, 보안 업데이트, 언어 최적화 및 개선 사항, 성능 향상이 포함됩니다. Java 21 LTS는 공식 일반 출시(GA) 전에 일련의 중요한 개발 단계를 거쳤습니다. 매 6개월마다 새로운 Java 버전이 출시되지만, LTS 버전은 3년마다 출시되는 패턴을 따릅니다. 이 글을 업데이트할 당시, 가장 최근의 LTS Java 버전은 JDK 21입니다.
이 글은 Ubuntu 22.04, Ubuntu 20.04, Ubuntu 18.04에 JDK 21을 설치하기 위한 최신 참고 자료로 작성되었습니다. 모든 새로운 기능에 대해서는 공식 Oracle Java 릴리스 노트를 확인하세요. Java 21은 OpenJDK 커뮤니티의 많은 개인과 조직의 기여 덕분에 만들어졌습니다.
궁극의 우분투 데스크톱 핸드북
전문가처럼 Ubuntu를 마스터하세요 - 아름다운 데스크탑 커스터마이징부터 강력한 터미널 자동화까지. 작업 공간을 완벽하게 제어하고 싶은 개발자, 시스템 관리자, 파워 유저에게 완벽합니다.
Ubuntu 22.04|20.04|18.04에 Oracle JDK 21 LTS 설치하기
오라클은 Oracle No-Fee Terms and Conditions(NFTC)에 따라 JDK 21 바이너리를 무료로 설치하고 프로덕션 환경에서 사용할 수 있으며, 심지어 재배포도 할 수 있습니다. 오라클 자바 다운로드 페이지를 방문하여 최신 Java Development Kit 21 DEB 패키지를 받으세요.
wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.debUbuntu 시스템에 Java JDK 21 LTS를 설치하려면 apt 패키지 설치 도구를 사용하세요.
sudo apt install ./jdk-21_linux-x64_bin.deb설치 시 출력에 오류가 없는지 확인하세요:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'jdk-21' instead of './jdk-21_linux-x64_bin.deb'
The following NEW packages will be installed:
jdk-21
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/168 MB of archives.
After this operation, 347 MB of additional disk space will be used.
Get:1 /root/jdk-21_linux-x64_bin.deb jdk-21 amd64 21.0.1-ga [168 MB]
Selecting previously unselected package jdk-21.
(Reading database ... 39280 files and directories currently installed.)
Preparing to unpack /root/jdk-21_linux-x64_bin.deb ...
Unpacking jdk-21 (21.0.1-ga) ...
Setting up jdk-21 (21.0.1-ga) ...
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jar to provide /usr/bin/jar (jar) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jarsigner to provide /usr/bin/jarsigner (jarsigner) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/java to provide /usr/bin/java (java) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/javac to provide /usr/bin/javac (javac) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/javadoc to provide /usr/bin/javadoc (javadoc) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/javap to provide /usr/bin/javap (javap) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jcmd to provide /usr/bin/jcmd (jcmd) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jconsole to provide /usr/bin/jconsole (jconsole) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jdb to provide /usr/bin/jdb (jdb) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jdeprscan to provide /usr/bin/jdeprscan (jdeprscan) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jdeps to provide /usr/bin/jdeps (jdeps) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jfr to provide /usr/bin/jfr (jfr) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jhsdb to provide /usr/bin/jhsdb (jhsdb) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jimage to provide /usr/bin/jimage (jimage) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jinfo to provide /usr/bin/jinfo (jinfo) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jlink to provide /usr/bin/jlink (jlink) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jmap to provide /usr/bin/jmap (jmap) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jmod to provide /usr/bin/jmod (jmod) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jpackage to provide /usr/bin/jpackage (jpackage) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jps to provide /usr/bin/jps (jps) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jrunscript to provide /usr/bin/jrunscript (jrunscript) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jshell to provide /usr/bin/jshell (jshell) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jstack to provide /usr/bin/jstack (jstack) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jstat to provide /usr/bin/jstat (jstat) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jstatd to provide /usr/bin/jstatd (jstatd) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jwebserver to provide /usr/bin/jwebserver (jwebserver) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/serialver to provide /usr/bin/serialver (serialver) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode
Scanning processes...
Scanning linux images...
Java의 기본 버전을 확인하여 설치를 확인하세요.
$ java --version
java 21.0.1 2023-10-17 LTS
Java(TM) SE Runtime Environment (build 21.0.1+12-LTS-29)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.1+12-LTS-29, mixed mode, sharing)Java Home을 설정해야 한다면 /usr/lib/jvm/jdk-21-oracle-x64/ 으로 설정해야 합니다
export JAVA_HOME=/usr/lib/jvm/jdk-21-oracle-x64
export PATH=$PATH:$JAVA_HOME/bin지속적으로 적용하려면 ~/.bashrc 또는 /etc/profile 파일에 값을 설정하세요.
Ubuntu 22.04|20.04|18.04에 OpenJDK 21 LTS 설치하기
OpenJDK는 GNU 일반 공중 사용 허가서(GPL) 하에 라이선스된 Java 플랫폼, 표준 에디션의 오픈 소스 구현입니다. OpenJDK 21은 Java SE 21 플랫폼의 구현 버전인 Java 개발 키트(JDK) 21의 프로덕션 준비가 완료된 오픈 소스 빌드입니다.
OpenJDK 21을 설치하려면 OpenJDK 21 릴리스 페이지를 방문하여 사용 중인 CPU 아키텍처에 맞는 최신 버전을 다운로드하세요.
wget https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz다운로드한 압축 파일을 추출하세요.
tar xvf openjdk-21.0.2_linux-x64_bin.tar.gz압축 해제 후 생성된 폴더를 이동하세요
sudo mv jdk-21.0.2 /usr/local//etc/profile.d/ 디렉토리 안에서 환경 변수를 설정하세요.
$ sudo vim /etc/profile.d/jdk21.sh
export JAVA_HOME=/usr/local/jdk-21.0.2
export PATH=$PATH:$JAVA_HOME/bin파일을 소스하여 현재 셸 세션에서 변수를 사용할 수 있도록 합니다.
source /etc/profile.d/jdk21.sh다음 명령어를 사용하여 Java 버전을 확인하세요.
$ java --version
openjdk 21.0.2 2024-01-16
OpenJDK Runtime Environment (build 21.0.2+13-58)
OpenJDK 64-Bit Server VM (build 21.0.2+13-58, mixed mode, sharing)Java 버전 간 전환
여러 버전의 Java가 설치된 시스템에서는 update-java-alternatives 명령어를 사용하여 설치된 버전 간에 전환할 수 있습니다.
먼저 모든 자바 버전을 나열하세요:
$ sudo update-java-alternatives --list
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
jdk-21-oracle-x64 352329728 /usr/lib/jvm/jdk-21-oracle-x64예를 들어, Java 21 버전을 기본값으로 설정하려면 다음을 사용하세요:
sudo update-java-alternatives --set /usr/lib/jvm/jdk-21-oracle-x64변경이 성공적으로 이루어졌는지 확인하세요.
# Before
$ java --version
openjdk 11.0.21 2023-10-17
OpenJDK Runtime Environment (build 11.0.21+9-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.21+9-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)
# After
$ java --version
java 21.0.1 2023-10-17 LTS
Java(TM) SE Runtime Environment (build 21.0.1+12-LTS-29)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.1+12-LTS-29, mixed mode, sharing)결론
Java는 설계상 사용하기 쉽고 이해하기 쉬운 프로그래밍 언어입니다. Java 21에서 애플리케이션을 작성하고, 컴파일하고, 디버깅하며, 가능하다면 실제 운영 환경에서 실행하는 것을 즐기세요. Java를 사용하면 어떤 플랫폼에서도 모듈식 프로그램과 재사용 가능한 코드를 쉽게 만들 수 있습니다. 이 글이 도움이 되었기를 바라며, 저희 웹사이트를 방문해 주셔서 감사합니다.