Trong quá trình phát triển ứng dụng Java, bạn có thể cần phải làm việc với các phiên bản khác nhau của Java Runtime Environents (JRE) và Java Development Kits (JDK).
APT Cài đặt JDK (OpenJDK 8 và 11)
Ví dụ này cho thấy cách sử dụng apt install để cài đặt OpenJDK 8 và 11 trên Ubuntu.
Chúng ta có thể sử dụng sudo apt search openjdk để tìm tất cả OpenJDK có sẵn trong kho lưu trữ mặc định. Kết quả tìm kiếm dưới đây cho thấy có 4 OpenJDK có sẵn để cài đặt.
sudo apt search openjdk
openjdk-11-jdk/focal-updates,focal-security,now 11.0.10+9-0ubuntu1~20.04 amd64 [installed]
OpenJDK Development Kit (JDK)
openjdk-13-jdk/focal-updates 13.0.4+8-1~20.04 amd64
OpenJDK Development Kit (JDK)
openjdk-14-jdk/focal-updates 14.0.2+12-1~20.04 amd64
OpenJDK Development Kit (JDK)
openjdk-8-jdk/focal-updates,focal-security 8u282-b08-0ubuntu1~20.04 amd64
OpenJDK Development Kit (JDK)
- Cài đặt JDK 8: sudo apt install openjdk-8-jdk
- Cài đặt JDK 11: sudo apt install openjdk-11-jdk
JDK được cài đặt ở đâu?
- Apt cài đặt Java JDK tại đường dẫn /usr/lib/jvm.
ls -lsa /usr/lib/jvm
4 drwxr-xr-x 5 root root 4096 Mac 29 15:06 .
4 drwxr-xr-x 125 root root 4096 Mac 5 11:51 ..
0 lrwxrwxrwx 1 root root 21 Jul 16 2020 java-1.11.0-openjdk-amd64 -> java-11-openjdk-amd64
4 -rw-r--r-- 1 root root 2044 Jan 20 10:32 .java-1.11.0-openjdk-amd64.jinfo
4 drwxr-xr-x 9 root root 4096 Feb 18 13:54 java-11-openjdk-amd64
0 lrwxrwxrwx 1 root root 20 Jan 20 11:59 java-1.8.0-openjdk-amd64 -> java-8-openjdk-amd64
4 -rw-r--r-- 1 root root 2764 Jan 20 11:59 .java-1.8.0-openjdk-amd64.jinfo
4 drwxr-xr-x 7 root root 4096 Mac 29 15:06 java-8-openjdk-amd64
4 drwxr-xr-x 3 root root 4096 Feb 18 13:53 openjdk-11
- Và /usr/bin/java được liên kết với một trong những JDK đã cài đặt.
which java
/usr/bin/java
ls -lsa /usr/bin/java
0 lrwxrwxrwx 1 root root 22 Sep 14 2020 /usr/bin/java -> /etc/alternatives/java
ls -lsa /etc/alternatives/java
0 lrwxrwxrwx 1 root root 46 Mac 29 15:15 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
- Chúng ta có thể sử dụng java -version để xác minh xem Java JDK có được cài đặt đúng hay không
java -version
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-8u282-b08-0ubuntu1~20.04-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)
Cài đặt JDK theo cách thủ công (OpenJDK 17)
Truy cập trang chính thức của OpenJDK 17
Giải nén JDK tệp tải xuống vào /opt/jdk-17$ sudo mkdir /opt/jdk-17
$ sudo tar -zxf ~/Downloads/openjdk-17.0.2_linux-x64_bin.tar.gz -C /opt/jdk-17
$ ls -lsa /opt/jdk-17
ls -lsa /opt/jdk-17
total 36
4 drwxr-xr-x 8 root root 4096 Mac 10 13:18 .
4 drwxr-xr-x 5 root root 4096 Mac 15 14:09 ..
4 drwxr-xr-x 2 root root 4096 Mac 10 13:18 bin
4 drwxr-xr-x 5 root root 4096 Mac 10 13:18 conf
4 drwxr-xr-x 3 root root 4096 Mac 10 13:18 include
4 drwxr-xr-x 2 root root 4096 Mac 10 13:18 jmods
4 drwxr-xr-x 69 root root 4096 Mac 10 13:18 legal
4 drwxr-xr-x 5 root root 4096 Mac 10 13:18 lib
4 -rw-r--r-- 1 10668 10668 1133 Feb 8 19:40 release
Cập nhật liên kết /etc/alternatives/java
Kết quả dưới đây cho thấy 5 JDK được cài đặt trên Ubuntu này; chọn tùy chọn 2 cho JDK 17 /opt/jdk-17/bin/java được giải nén ở trên.
sudo update-alternatives --config java
There are 4 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 /opt/jdk-15/bin/java 100 manual mode
2 /opt/jdk-17/bin/java 100 manual mode
3 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
* 4 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /opt/jdk-17/bin/java to provide /usr/bin/java (java) in manual mode
Xác nhận JDK:
java 17 2021-09-14 LTS
Java(TM) SE Runtime Environment (build 17+35-LTS-2724)
Java HotSpot(TM) 64-Bit Server VM (build 17+35-LTS-2724, mixed mode, sharing)
/opt/jdk17
Cài đặt Oracle JDK trên Ubuntu
Chúng ta cần tạo một tài khoản Oracle để tải xuống Oracle JDK. Vui lòng truy cập liên kết Oracle JDK chính thức để tải xuống JDK.
Oracle JDK 11 trở lên là sản phẩm trả phí và bạn cần có giấy phép để sử dụng sản xuất phần mềm. Tuy nhiên, vẫn có thể tải xuống miễn phí để phát triển và thử nghiệm.
Cài đặt Oracle JDK 11 (Hiện không hoạt động)
sudo add-apt-repository ppa:linuxuprising/java
sudo apt update
sudo apt install oracle-java11-installer
Cài đặt Oracle JDK 8
sudo add-apt-repository ppa:webupd8team/java
sudo apt update
sudo apt install oracle-java8-installer
Chuyển đổi giữa các phiên bản JDK khác nhau
Đối với bất kỳ JDK mới được tải xuống nào, hãy chạy update-alternatives --install /usr/bin/java java để cho Ubuntu biết rằng có một tùy chọn bổ sung cho /usr/bin/java. Đối với nhiều JDK được cài đặt, chúng tôi có thể chạy update-alternatives --config java để chọn JDK để sử dụng.
sudo update-alternatives --config java
There are 4 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 /opt/jdk-15/bin/java 100 manual mode
* 2 /opt/jdk-17/bin/java 100 manual mode
3 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
4 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
Thêm JAVA_HOME vào biến môi trường Ubuntu
Nhiều server, framework và công cụ phụ thuộc vào biến môi trường JAVA_HOME để tìm Java đã cài đặt. Trên Ubuntu, chúng ta có thể thêm JAVA_HOME vào các biến môi trường hệ thống - /etc/environment.
Mở tệp /etc/environment bằng các trình soạn thảo văn bản yêu thích của bạn như vi, vim hoặc nano.
sudo vim /etc/environment
Thêm JAVA_HOME tại một dòng mới và trỏ nó đến một trong các JDK đã cài đặt.
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/
Gõ source /etc/environment trong terminal để thay đổi cấu hình hệ thống Ubuntu.
source /etc/environment
echo $JAVA_HOME
/usr/lib/jvm/java-11-openjdk-amd64/