Hướng dẫn cài đặt và quản lý nhiều phiên bản Java trên Ubuntu

Ngày đăng: July 17, 2025

Ubuntu

description image

Giới thiệu

Java và JVM (máy ảo Java) là bắt buộc cho nhiều loại phần mềm, bao gồm Tomcat, Jetty, Glassfish, CassandraJenkins.

Trong hướng dẫn này, bạn sẽ cài đặt các phiên bản khác nhau của Java Runtime Environment (JRE) và Java Developer Kit (JDK) sử dụng apt. Bạn sẽ cài OpenJDK cũng như JDK chính thức từ Oracle. Sau đó bạn sẽ chọn phiên bản muốn sử dụng cho dự án của mình. Khi hoàn thành, bạn có thể sử dụng JDK để phát triển phần mềm hoặc sử dụng Java Runtime để chạy phần mềm.

<details open> <summary>

Yêu cầu trước

</summary> Bạn sẽ cần:

  • Một máy chủ Ubuntu được thiết lập theo hướng dẫn [thiết lập máy chủ ban đầu trên Ubuntu 22.04], bao gồm người dùng không phải root với quyền sudo và firewall. </details>

<details open> <summary>

Bước 1 — Cài đặt Java

</summary> Một bản cài đặt Java gồm hai thành phần chính. JDK cung cấp các công cụ phần mềm thiết yếu để phát triển Java như trình biên dịch và trình gỡ lỗi. JRE dùng để thực thi các chương trình Java. Ngoài ra, có hai lựa chọn chính để cài Java. OpenJDK là bản triển khai mã nguồn mở của Java và được đóng gói cùng Ubuntu. Oracle JDK là phiên bản gốc của Java và được Oracle duy trì đầy đủ.

Cả hai phiên bản đều được Oracle công nhận chính thức. Cả hai đều do Oracle phát triển nhưng OpenJDK có bổ sung đóng góp cộng đồng do tính chất mã nguồn mở. Tuy nhiên, từ Java 11, hai lựa chọn về chức năng là như nhau như Oracle mô tả. Lựa chọn cài đặt phụ thuộc vào việc chọn giấy phép phù hợp với nhu cầu cá nhân. Ngoài ra, OpenJDK có thể cài JRE riêng biệt, trong khi Oracle JDK kèm sẵn JRE.

Tùy chọn 1 — Cài đặt JRE/JDK mặc định

Một lựa chọn cài Java là sử dụng phiên bản kèm theo Ubuntu. Mặc định, Ubuntu bao gồm OpenJDK 11, là biến thể mã nguồn mở của JRE và JDK.

Để cài OpenJDK Java, trước tiên cập nhật chỉ mục gói apt của bạn:

sudo apt update

Kiểm tra xem Java đã được cài chưa:

java -version

Nếu Java chưa được cài, bạn sẽ nhận được thông báo như sau:

Command 'java' not found, but can be installed with:

sudo apt install default-jre              # version 2:1.11-72build1, or
sudo apt install openjdk-11-jre-headless  # version 11.0.14+9-0ubuntu2
sudo apt install openjdk-17-jre-headless  # version 17.0.2+8-1
sudo apt install openjdk-18-jre-headless  # version 18~36ea-1
sudo apt install openjdk-8-jre-headless   # version 8u312-b07-0ubuntu1

Chạy lệnh sau để cài JRE từ OpenJDK 11:

sudo apt install default-jre

JRE sẽ cho phép bạn chạy gần như tất cả phần mềm Java.

Kiểm tra cài đặt bằng:

java -version

Bạn sẽ nhận đầu ra tương tự:

openjdk version "11.0.14" 2022-01-18
OpenJDK Runtime Environment (build 11.0.14+9-Ubuntu-0ubuntu2)
OpenJDK 64-Bit Server VM (build 11.0.14+9-Ubuntu-0ubuntu2, mixed mode, sharing)

Bạn có thể cần JDK ngoài JRE để biên dịch và chạy một số phần mềm Java cụ thể. Để cài JDK, chạy lệnh sau (cũng cài kèm JRE):

sudo apt install default-jdk

Kiểm tra JDK đã cài bằng cách xem phiên bản javac (trình biên dịch Java):

javac -version

Bạn sẽ thấy đầu ra:

javac 11.0.14

Sau đây, bạn sẽ học cách cài JDK và JRE chính thức của Oracle.

Tùy chọn 2 — Cài Oracle JDK 11

Giấy phép Oracle cho Java không cho phép tự động cài qua trình quản lý gói. Để cài Oracle JDK, bạn cần [tạo tài khoản Oracle]và tải thủ công JDK để thêm kho phần mềm mới cho phiên bản muốn dùng. Sau đó dùng apt với sự hỗ trợ từ kịch bản cài đặt bên thứ ba để cài. Oracle JDK bao gồm sẵn JRE nên không cần cài riêng.

Phiên bản Oracle JDK cần tải phải trùng với phiên bản kịch bản cài đặt. Để biết phiên bản cần, xem trang oracle-java11-installer.

Tìm gói cho Jammy, như hình dưới:

description image

Trong hình, phiên bản là 11.0.13. Bạn cần Oracle JDK 11.0.13. Phiên bản của bạn có thể khác tùy thời điểm cài.

Bạn không cần tải từ trang này; sẽ cài kịch bản qua apt sau.

Tiếp theo, vào trang Tải kho lưu trữ và tìm phiên bản tương ứng.

![Trang tải kho Java của Oracle]![description image]description image

Chọn gói nén Linux x64 .tar.gz:

![description image]description image

Màn hình sẽ yêu cầu chấp nhận thỏa thuận giấy phép Oracle. Chọn hộp chấp nhận và nhấn Download. Có thể bạn phải đăng nhập lại tài khoản Oracle lần nữa.

Sau khi tải xong, chuyển file lên máy chủ. Trên máy cục bộ dùng macOS, Linux hoặc Windows có Windows Subsystem for Linux, dùng lệnh scp để chuyển file tới thư mục home của user sammy trên server. Lệnh sau giả định bạn lưu file JDK trong thư mục Downloads cục bộ:

scp Downloads/jdk-11.0.13_linux-x64_bin.tar.gz sammy@your_server_ip:~

Sau khi upload xong, về server thêm kho phần mềm bên thứ ba giúp cài Oracle Java.

Trước tiên, nhập khoá ký để xác minh phần mềm:

sudo gpg --homedir /tmp --no-default-keyring --keyring /usr/share/keyrings/oracle-jdk11-installer.gpg --keyserver keyserver.ubuntu.com --recv-keys EA8CACC073C3DB2A

Bạn sẽ thấy đầu ra:

gpg: keybox '/usr/share/keyrings/oracle-jdk11-installer.gpg' created
gpg: /tmp/trustdb.gpg: trustdb created
gpg: key EA8CACC073C3DB2A: public key "Launchpad PPA for Linux Uprising" imported
gpg: Total number processed: 1
gpg:               imported: 1

Thêm kho phần mềm vào danh sách nguồn:

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-jdk11-installer.gpg] https://ppa.launchpadcontent.net/linuxuprising/java/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/oracle-jdk11-installer.list > /dev/null

Cập nhật danh sách gói:

sudo apt update

Trình cài đặt sẽ tìm Oracle JDK bạn đã tải trong /var/cache/oracle-jdk11-installer-local. Tạo thư mục và di chuyển file vào đó:

sudo mkdir -p /var/cache/oracle-jdk11-installer-local/
sudo cp jdk-11.0.13_linux-x64_bin.tar.gz /var/cache/oracle-jdk11-installer-local/

Cuối cùng, cài gói:

sudo apt install oracle-java11-installer-local

Trình cài sẽ yêu cầu bạn chấp nhận giấy phép Oracle, sau đó giải nén và cài Java.

Bây giờ bạn sẽ học cách chọn phiên bản Java muốn dùng. </details>

<details open> <summary>

Bước 2 — Quản lý Java

</summary> Bạn có thể cài nhiều phiên bản Java trên một máy chủ. Bạn có thể cấu hình phiên bản mặc định sử dụng trên dòng lệnh bằng lệnh update-alternatives.

sudo update-alternatives --config java

Kết quả sẽ trông như sau nếu bạn cài cả hai phiên bản trong hướng dẫn:

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                         Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111      manual mode
* 2            /usr/lib/jvm/java-11-oracle/bin/java          1091      manual mode

Press <enter> to keep the current choice[*], or type selection number:

Chọn số tương ứng phiên bản Java để dùng làm mặc định, hoặc nhấn ENTER để giữ nguyên.

Bạn có thể làm tương tự với các lệnh Java khác như trình biên dịch (javac):

sudo update-alternatives --config javac

Các lệnh khác có thể dùng lệnh này gồm keytool, javadoc, và jarsigner. </details>

<details open> <summary>

Bước 3 — Thiết lập biến môi trường JAVA_HOME

</summary> Nhiều chương trình viết bằng Java sử dụng biến môi trường JAVA_HOME để xác định vị trí cài Java.

Để đặt biến môi trường này, trước tiên xác định nơi Java được cài bằng lệnh:

sudo update-alternatives --config java

Lệnh này liệt kê mỗi bản cài Java cùng đường dẫn:

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                         Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111      manual mode
* 2            /usr/lib/jvm/java-11-oracle/bin/java          1091      manual mode

Press <enter> to keep the current choice[*], or type selection number:

Đường dẫn cài đặt ví dụ:

  1. OpenJDK 11: /usr/lib/jvm/java-11-openjdk-amd64/bin/java
  2. Oracle Java: /usr/lib/jvm/java-11-oracle/jre/bin/java

Sao chép đường dẫn bản cài bạn chọn. Mở file /etc/environment bằng nano hoặc trình soạn thảo khác:

sudo nano /etc/environment

Thêm dòng sau cuối file, thay phần được tô sáng bằng đường dẫn của bạn, lưu ý không bao gồm phần bin/:

JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

Sửa file này sẽ đặt biến JAVA_HOME cho tất cả người dùng trên hệ thống.

Lưu và thoát trình soạn thảo.

Tải lại file để áp dụng cho phiên làm việc hiện tại:

source /etc/environment

Kiểm tra biến môi trường đã được đặt:

echo $JAVA_HOME

Bạn sẽ thấy đường dẫn vừa đặt:

/usr/lib/jvm/java-11-openjdk-amd64

Người dùng khác cần chạy source /etc/environment hoặc đăng xuất rồi đăng nhập lại để áp dụng. </details>

<details open> <summary>

Các lỗi phổ biến và gỡ lỗi

</summary>

"Java không tìm thấy" hoặc "lệnh không tìm thấy"

Nếu gặp lỗi Java not found hoặc command not found, hệ thống không xác định được thực thi Java. Khắc phục bằng cách đặt biến môi trường PATH chứa thư mục cài Java:

export PATH=$PATH:/usr/lib/jvm/java-11-openjdk-amd64/bin

"JAVA_HOME chưa được đặt"

Nếu nhận lỗi JAVA_HOME is not set, nghĩa là biến môi trường chưa cấu hình. Khắc phục bằng cách đặt biến:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

"Không thể tìm phiên bản JDK hoặc JRE đã cài"

Lỗi này nghĩa hệ thống không tìm được Java Development Kit (JDK) hoặc Java Runtime Environment (JRE) đã cài. Kiểm tra đường dẫn cài đặt và đặt biến PATH đúng:

export PATH=$PATH:/usr/lib/jvm/java-11-openjdk-amd64/bin

"Không có quyền trong quá trình cài"

Nếu gặp lỗi Permission denied khi cài Java, có thể do tài khoản không có quyền. Chạy lại lệnh cài với sudo:

sudo apt-get install openjdk-11-jdk

</details>

<details open> <summary>

Câu hỏi thường gặp (FAQs)

</summary>

Làm thế nào kiểm tra xem Java đã cài trên Ubuntu?

Chạy lệnh:

java -version

Nếu Java đã cài, hiện phiên bản Java đang dùng. Nếu chưa, hiện lỗi.

Sự khác nhau giữa JRE và JDK là gì?

JRE cung cấp môi trường chạy Java, trong khi JDK gồm JRE cùng các công cụ phát triển như trình biên dịch và gỡ lỗi.

Tính năng JRE JDK
Môi trường chạy
Công cụ phát triển Không
Trình biên dịch Không
Trình gỡ lỗi Không

Làm cách nào cài phiên bản Java cụ thể trên Ubuntu?

Chạy lệnh:

sudo apt-get install openjdk-11-jdk

Làm sao chuyển đổi giữa các phiên bản Java?

Dùng lệnh:

sudo update-alternatives --config java

Làm sao gỡ Java khỏi Ubuntu?

Chạy:

sudo apt-get remove openjdk-11-jdk

JAVA_HOME là gì và cách đặt như thế nào?

JAVA_HOME là biến môi trường chỉ tới thư mục cài đặt Java trên hệ thống. Đặt bằng lệnh:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

</details>

<details open> <summary>

Kết luận

</summary> Trong hướng dẫn này, bạn đã cài và quản lý thành công nhiều phiên bản Java trên hệ thống Ubuntu. Việc này mở ra nhiều khả năng cài phần mềm dựa trên Java như Tomcat, Jetty, Glassfish, Cassandra, hoặc Jenkins. </details>

Tham gia kênh Telegram của CloudFly để nhận thêm ưu đãi và không bỏ lỡ bất kỳ khuyến mãi nào từ CloudFly
Chia sẻ

0 câu trả lời