Tìm kiếm trang web

Cài đặt Java JDK 21 (OpenJDK 21) trên Ubuntu 22.04|20.04|18.04


Với mỗi phiên bản Java mới, có rất nhiều tính năng mới, bản cập nhật bảo mật, tối ưu hóa ngôn ngữ và cải tiến, cùng với nâng cao hiệu suất. Java 21 LTS đã trải qua một loạt các giai đoạn phát triển nghiêm túc trước khi phát hành chính thức (GA). Mỗi sáu tháng lại có một phiên bản Java mới, nhưng mô hình các phiên bản LTS là mỗi ba năm một lần. Tại thời điểm cập nhật bài viết này, phiên bản LTS mới nhất của Java là JDK 21.

Bài viết này được tạo ra nhằm phục vụ như một tài liệu tham khảo cập nhật về việc cài đặt JDK 21 trên Ubuntu 22.04, Ubuntu 20.04 và Ubuntu 18.04. Để biết tất cả các tính năng mới, hãy xem ghi chú phát hành Java chính thức của Oracle. Java 21 có thể thực hiện được nhờ sự đóng góp của nhiều cá nhân và tổ chức trong Cộng đồng OpenJDK.

Sổ Tay Ubuntu Desktop Tối Thượng

Làm chủ Ubuntu như một chuyên gia - từ tùy chỉnh giao diện đẹp mắt đến tự động hóa terminal mạnh mẽ. Hoàn hảo cho các nhà phát triển, quản trị hệ thống và người dùng cao cấp muốn kiểm soát hoàn toàn không gian làm việc của mình.

Cài đặt Oracle JDK 21 LTS trên Ubuntu 22.04|20.04|18.04

Oracle cung cấp các tệp nhị phân JDK 21 miễn phí để cài đặt và sử dụng trong sản xuất và thậm chí phân phối lại, mà không tốn phí, theo Điều khoản và Điều kiện Miễn phí của Oracle (NFTC). Truy cập trang tải xuống Java của Oracle và lấy gói DEB mới nhất của Bộ công cụ phát triển Java 21.

wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.deb

Sử dụng công cụ cài đặt gói apt để cài đặt Java JDK 21 LTS trên hệ thống Ubuntu của bạn.

sudo apt install ./jdk-21_linux-x64_bin.deb

Xác nhận rằng việc cài đặt không cho ra bất kỳ lỗi nào trong kết quả:

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...

Xác nhận cài đặt bằng cách kiểm tra phiên bản Java mặc định.

$ 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)

Nếu bạn cần thiết lập Java Home, nó nên là /usr/lib/jvm/jdk-21-oracle-x64/

export JAVA_HOME=/usr/lib/jvm/jdk-21-oracle-x64
export PATH=$PATH:$JAVA_HOME/bin

Để lưu vĩnh viễn, hãy đặt các giá trị trong tệp ~/.bashrc hoặc /etc/profile .

Cài đặt OpenJDK 21 LTS trên Ubuntu 22.04|20.04|18.04

OpenJDK là một triển khai mã nguồn mở của Nền tảng Java, Phiên bản Tiêu chuẩn được cấp phép theo Giấy phép Công cộng GNU. OpenJDK 21 là các bản dựng mã nguồn mở sẵn sàng cho sản xuất của Bộ Công cụ Phát triển Java, phiên bản 21, một triển khai của Nền tảng Java SE 21.

Để cài đặt OpenJDK 21, hãy truy cập trang phát hành OpenJDK 21 và lấy phiên bản mới nhất phù hợp với kiến trúc CPU của bạn.

wget https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz

Giải nén tệp lưu trữ đã tải về.

tar xvf openjdk-21.0.2_linux-x64_bin.tar.gz

Di chuyển thư mục đã tạo sau khi giải nén

sudo mv jdk-21.0.2 /usr/local/

Đặt các biến môi trường bên trong thư mục /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

Nguồn các tệp để làm cho các biến có sẵn trong phiên shell hiện tại của bạn.

source /etc/profile.d/jdk21.sh

Xác nhận phiên bản Java bằng cách sử dụng lệnh sau.

$ 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)

Chuyển đổi giữa các phiên bản Java

Trên các hệ thống có nhiều phiên bản Java được cài đặt, bạn có thể chuyển đổi giữa các phiên bản đã cài đặt bằng cách sử dụng lệnh update-java-alternatives.

Đầu tiên liệt kê tất cả các phiên bản java:

$ 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

Ví dụ, để đặt phiên bản Java 21 làm mặc định, hãy sử dụng:

sudo update-java-alternatives --set  /usr/lib/jvm/jdk-21-oracle-x64

Xác nhận việc thay đổi đã thành công.

# 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)

Kết luận

Theo thiết kế, Java là một ngôn ngữ lập trình dễ sử dụng và dễ hiểu. Hãy tận hưởng việc viết ứng dụng của bạn bằng Java 21, biên dịch, gỡ lỗi, và hy vọng chạy nó trong môi trường sản xuất. Với Java, việc tạo các chương trình mô-đun và mã có thể tái sử dụng trên bất kỳ nền tảng nào đều trở nên dễ dàng. Chúng tôi hy vọng bài viết này hữu ích và xin cảm ơn bạn đã ghé thăm trang web của chúng tôi.