Java và JVM (máy ảo của Java) được sử dụng cho nhiều phần mềm như Tomcat, Jetty, Glassfish, Cassandra và Jenkins. Trong bài viết này, Vietnix sẽ hướng dẫn bạn cài đặt Java với APT trên Ubuntu 20.04, cùng nhiều môi trường thực thi Java (Java Runtime Environment – JRE) và bộ công cụ phát triển Java (Java Developer Kit – JDK) khác nhau bằng apt
. Bạn sẽ được cài đặt OpenJDK cũng như JDK chính thức từ Oracle. Bạn có thể chọn phiên bản mà bạn muốn sử dụng cho dự án của mình. Ngoài ra, 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.
Yêu cầu để có thể cài đặt Java với APT trên Ubuntu 20.04
Để thực hiện theo hướng dẫn, bạn cần có một máy chủ Ubuntu 20.04. Máy chủ này đã được cài đặt bao gồm tài khoản người dùng non-root có phân quyền sudo và được cài firewall.
Nếu bạn cần một máy chủ để cài đặt Java với APT trên Ubuntu, bạn có thể tham khảo các gói dịch vụ VPS do Vietnix cung cấp. Các gói VPS của Vietnix có cấu hình đa dạng, phần cứng mạnh mẽ, mang lại tốc độ xử lý vượt trội. Bạn có thể lựa chọn gói VPS phù hợp với nhu cầu và ngân sách của bạn, toàn quyền thực hiện cài đặt Java và các phần mềm khác trên VPS.
Cài đặt JRE/JDK mặc định
Cách đơn giản nhất để cài đặt Java trên Ubuntu là sử dụng phiên bản đã được đóng gói cùng với hệ điều hành. Ubuntu 20.04 mặc định đã có sẵn Open JDK 11. Đây là một biến thể mã nguồn mở của JRE và JDK.
Để cài đặt Open JDK 11, bạn phải cập nhật gói phần mềm bằng câu lệnh:
sudo apt update
Tiếp theo, hãy kiểm tra xem Java đã được cài đặt trên Ubuntu hay chưa:
java -version
Nếu Java chưa được cài đặt, bạn sẽ thấy output trả về như sau:
Output
Command 'java' not found, but can be installed with:
sudo apt install openjdk-11-jre-headless # version 11.0.11+9-0ubuntu2~20.04, or
sudo apt install default-jre # version 2:1.11-72
sudo apt install openjdk-13-jre-headless # version 13.0.7+5-0ubuntu1~20.04
sudo apt install openjdk-16-jre-headless # version 16.0.1+9-1~20.04
sudo apt install openjdk-8-jre-headless # version 8u292-b10-0ubuntu1~20.04
Tiếp theo, bạn hãy gõ câu lệnh dưới đây để cài đặt Java Runtime Environment (JRE) từ OpenJDK 11:
sudo apt install default-jre
JRE sẽ cho phép bạn chạy hầu như với tất cả phần mềm Java. Sau đó hãy xác minh cài đặt với câu lệnh:
java -version
Bạn sẽ thấy output tương tự như sau:
Output
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing))
Để biên dịch và chạy một số phần mềm Java cụ thể, có thể bạn cần phải sử dụng Java Development Kit (JDK) kèm theo Java Runtime Environment (JRE). Để cài đặt JDK và JRE, hãy thực hiện lệnh sau:
sudo apt install default-jdk
Xác minh rằng JDK đã được cài đặt bằng cách kiểm tra phiên bản javac
– một trình biên dịch Java:
javac -version
Bạn sẽ thấy output trả về kết quả như sau:
Output
javac 11.0.11
Tiếp theo, bạn sẽ thực hiện cài đặt JDK và JRE chính thức của Oracle.
Ngoài ra, bạn cũng có thể tận dụng khả năng linh hoạt của máy chủ web Apache để có thể cài đặt và cấu hình Apache Virtual Hosts trên Ubuntu 20.04.
Cài đặt Oracle JDK 11
Oracle không cho phép cài đặt tự động JDK thông qua các trình quản lý gói. Để cài đặt phiên bản chính thức Oracle JDK, bạn cần tạo một tài khoản Oracle và tải JDK về thủ công. Tiếp theo, thêm một kho lưu trữ gói mới cho phiên bản bạn muốn sử dụng. Sau đó, bạn có thể sử dụng lệnh apt
và hỗ trợ từ một script cài đặt bên thứ ba để cài đặt JDK.
Phiên bản của Oracle JDK mà bạn tải về phải phù hợp với phiên bản của script cài đặt. Để biết phiên bản cài đặt phù hợp, bạn hãy truy cập vào trang oracle-java11-installer
.
Tiếp đó, tìm gói cho Focal được hiển thị như trong hình sau:
Trong hình ảnh này, phiên bản của script là 11.0.7
. Do đó, bạn sẽ cần sử dụng Oracle JDK 11.0.7. Số phiên bản có thể khác nhau tùy thuộc vào thời điểm bạn cài đặt phần mềm.
Sau đó, hãy truy cập Downloads page và tìm phiên bản phù hợp.
Nhấp vào nút JDK Download và bạn sẽ được chuyển đến màn hình hiển thị các phiên bản có sẵn. Tiếp đó, nhấp vào gói .tar.gz
dành cho Linux.
Màn hình sẽ hiển thị yêu cầu bạn chấp nhận thỏa thuận cấp phép Oracle. Chọn vào chấp nhận thỏa thuận cấp phép và nhấn nút Downloads. Khi đó, quá trình tải xuống của bạn sẽ bắt đầu. Bạn có thể cần phải đăng nhập vào tài khoản Oracle của mình một lần nữa trước khi quá trình tải xuống bắt đầu.
Sau khi file đã được tải xuống, bạn cần chuyển file đó đến máy chủ của bạn. Trên macOS, Linux hoặc Windows sử dụng Windows Subsystem for Linux. Bạn sử dụng lệnh scp
để chuyển tệp đến thư mục chính của người dùng sammy
. Sử dụng lệnh dưới đây trong trường hợp bạn đã lưu tệp Oracle JDK vào thư mục Downloads
trên máy tính của mình:
scp Downloads/jdk-11.0.7_linux-x64_bin.tar.gz sammy@your_server_ip:~
Sau khi quá trình tải lên hoàn tất, hãy quay lại máy chủ và thêm kho lưu trữ bên thứ ba để cài đặt Java của Oracle.
Tiếp theo, bạn hãy cài đặt gói software-properties-common.
Gói này sẽ thêm lệnh add-apt-repository
vào hệ thống của bạn:
sudo apt install software-properties-common
Sau đó, nhập signing key được sử dụng để xác minh phần mềm mà bạn sắp cài đặt:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EA8CACC073C3DB2A
Bạn sẽ thấy một output như sau:
Output
gpg: key EA8CACC073C3DB2A: public key "Launchpad PPA for Linux Uprising" imported
gpg: Total number processed: 1
gpg: imported: 1
Hãy sử dụng lệnh apt-apt-eptoritory
để thêm repo vào danh sách các gói nguồn của bạn:
sudo add-apt-repository ppa:linuxuprising/java
Bạn sẽ thấy output trả về như dưới đây:
Output
Oracle Java 11 (LTS) and 16 installer for Ubuntu (21.04, 20.10, 20.04, 18.04, 16.04 and 14.04), Pop!_OS, Linux Mint and Debian.
Java binaries are not hosted in this PPA due to licensing. The packages in this PPA download and install Oracle Java, so a working Internet connection is required.
The packages in this PPA are based on the WebUpd8 Oracle Java PPA packages: https://launchpad.net/~webupd8team/+archive/ubuntu/java
Created for users of https://www.linuxuprising.com/
Installation instructions (with some tips), feedback, suggestions, bug reports etc.:
. . .
Press [ENTER] to continue or Ctrl-c to cancel adding it.
Hãy nhấn ENTER
để tiếp tục cài đặt. Bạn có thể thấy một thông báo no valid OpenPGP data found
. Nhưng bạn có thể bỏ qua thông báo này.
Bước tiếp theo là cập nhật danh sách gói để làm cho phần mềm mới sẵn sàng cài đặt:
sudo apt update
Trình cài đặt sẽ tìm kiếm Oracle JDK mà bạn đã tải xuống trong /var/cache/oracle-jdk11-installer-local
. Hãy tạo thư mục này và di chuyển bản lưu trữ Oracle JDK vào đó:
sudo mkdir -p /var/cache/oracle-jdk11-installer-local/
sudo cp jdk-11.0.7_linux-x64_bin.tar.gz /var/cache/oracle-jdk11-installer-local/
Cuối cùng là bước cài đặt gói:
sudo apt install oracle-java11-installer-local
Trình cài đặt sẽ yêu cầu bạn chấp nhận thỏa thuận giấy phép của Oracle. Bạn hãy nhấn chấp nhận thỏa thuận đó, sau đó trình cài đặt sẽ giải nén gói Java và cài đặt .
Tiếp theo sẽ hướng dẫn cách chọn phiên bản Java mà bạn muốn sử dụng.
Quản lý Java
Bạn có thể cài đặt 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 nào là phiên bản mặc định để sử dụng bằng cách dùng lệnh update-alternatives
.
sudo update-alternatives --config java
Output trông sẽ như thế này nếu bạn đã cài đặt cả hai phiên bản Java trong bài viết này:
Output
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:
Output thông báo chọn số liên quan đến phiên bản Java để sử dụng làm phiên bản mặc định. Hoặc nhấn ENTER
để giữ nguyên các thiết lập hiện tại.
Bạn có thể làm tương tự ở trình biên dịch (javac
) bằng câu lệnh:
sudo update-alternatives --config javac
Đặt biến môi trường JAVA_HOME
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 đặt Java.
Để đặt biến môi trường này, trước hết bạn hãy xác định nơi mà Java được cài đặt. Sử dụng lệnh update-alternatives
để xác định vị trí cài đặt Java:
sudo update-alternatives --config java
Lệnh này sẽ hiển thị các lần cài đặt Java cùng với đường dẫn cài đặt trước đó:
Output
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:
Thông báo hiển thị các thông tin về đường dẫn cài đặt như sau:
- OpenJDK 11 được đặt tại
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
. - Oracle Java được đặt tại
/usr/lib/jvm/java-11-oracle/jre/bin/java
.
Bạn hãy sao chép đường dẫn từ cài đặt mà bạn muốn sử dụng. Sau đó, mở /etc/environment
bằng nano
hoặc bất kỳ trình soạn thảo văn bản nào :
sudo nano /etc/environment
Ở cuối file này, thêm vào dòng lệnh dưới đây. Hãy thay thế đường dẫn của bạn với với đường dẫn được đánh dấu ngoại trừ phần bin/
:
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
Điều chỉnh file này giúp thiết lập đường dẫn JAVA_HOME
cho tất cả người dùng trên hệ thống của bạn.
Tiếp theo, lưu file và thoát khỏi trình chỉnh sửa.
Bây giờ, hãy tải lại tập tin này để áp dụng các thay đổi cho phiên làm việc hiện tại của bạn:
source /etc/environment
Xác minh rằng biến môi trường được đặt:
echo $JAVA_HOME
Bạn sẽ thấy đường dẫn vừa thiết lập:
Output
/usr/lib/jvm/java-11-openjdk-amd64
Người dùng khác sẽ cần thực hiện lệnh source /etc/environment
hoặc đăng xuất và đăng nhập lại để sử dụng cài đặt này.
Lời kết
Trong hướng dẫn này của Vietnix, bạn đã cài đặt nhiều phiên bản của Java và học cách quản lý chúng. Bây giờ bạn có thể cài đặt các phần mềm chạy trên Java và sử dụng bình thường. Bạn có thể thử một số phần mềm như Tomcat, Jetty, Glassfish, Cassandra hoặc Jenkins. Nếu có thắc mắc gì trong quá trình cài đặt, hãy để lại bình luận ở bên dưới bài viết nhé.