A. Nâng cấp từ Java 1.7 lên Java 1.8 trong Ubuntu 14.04
1. Thêm PPA (Personal Package Archive) cho gói Oracle Java 1.8, là gói chính thức của Oracle :
$ sudo add-apt-repository ppa:webupd8team/java
(Nếu không, ta có thể xài gói openjdk như sau :
$ sudo add-apt-repository ppa:openjdk-r/ppa)
Nếu gặp lỗi :
sudo:
add-apt-repository: command not found
thì cài đặt software-properties-common như sau :
$ sudo apt-get install -y software-properties-common
2. Cập nhật thông tin gói trên máy (local package cache) :
$ sudo aptitude update
3. Liệt kê tất cả các phiên bản JDK, JRE, BIN có sẵn :
$ sudo aptitude show oracle-java8-jdk
$ sudo aptitude show oracle-java8-jre
$ sudo aptitude show oracle-java8-bin
4. Cài đặt Java 8.181-1 :
$ sudo aptitude install oracle-java8-jdk=8.181-1~trusty1 oracle-java8-jre=8.181-1~trusty1 oracle-java8-bin=8.181-1~trusty1
* Ta có thể dùng lệnh apt-get thay vì dùng lệnh aptitude cho các bước 2,3,4 như sau :
$ sudo apt-get update
$ sudo apt-get install oracle-java8-jdk oracle-java8-jre oracle-java8-bin
5. Lưu phiên bản Java mới vừa cài đặt và chuyển sang dùng phiên bản này :
$ sudo update-alternatives --config java There are 3 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ 0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 auto mode 1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode * 2 /usr/lib/jvm/java-7-oracle/jre/bin/java 73 manual mode 3 /usr/lib/jvm/java-8-oracle/jre/bin/java 83 manual mode Press enter to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/lib/jvm/java-8-oracle/jre/bin/java to provide /usr/bin/java (java) in manual mode
Ta chọn số 3 tương ứng với Java 8 vừa cài đặt
6. Tương tự như trên, chọn trình biên dịch javac vừa cài đặt với lệnh sau, rồi chọn phiên bản vừa cài đặt :
xxx/usr/lib/jvm$ sudo update-alternatives --config javac
7. Kiểm tra phiên bản Java được dùng trong Ubuntu :
$ java -version java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b25) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b25, mixed mode)
$ javac -version javac 1.8.0_181
B. Cập nhật các tập tin pom.xml để Maven dùng java 8 cho biên dịch và chạy mã
1. Tìm các tập tin còn sử dụng java 1.7:
$ grep -r --exclude-dir=.svn "<source>1\.7" *
$ grep -r --exclude-dir=.svn "<target>1\.7" *
2. Thay phiên bản 1.7 bằng 1.8 trong các tập tin pom.xml vừa tìm được :
$ find . -name pom.xml -exec sed -i "s/<source>1\.7/<source>1\.8/g" {} \;
$ find . -name pom.xml -exec sed -i "s/<target>1\.7/<target>1\.8/g" {} \;
3. Cập nhật cấu hình và biên dịch mã trong dự án để kiểm tra việc biên dịch này chạy không lỗi :
$ mvn eclipse:eclipse
$ mvn clean install -DskipTests
C. Cài đặt và cấu hình dùng Java 8 cho Eclipse
Tôi dùng Eclipse phiên bản Kepler nên cần phải cài một bản vá hỗ trợ cho việc dùng Java 8 cho phiên bản này. Nếu bạn dùng phiên bản Eclipse gần nhất thì Java 8 được hỗ trợ sẵn và không cần phải cài bản vá này.
Tải bản vá Java 8 java8patch-P20140317-1600-repository.zip ở đường dẫn sau :
https://archive.eclipse.org/eclipse/downloads/drops4/P20140317-1600/
Help > Install New Software... > Add, nhấn Archive để chọn tập tin zip vừa tải về
Rồi chọn cài đặt 'Eclipse Java Development Tools'
Sau khi cài đặt xong, cấu hình Eclipse như sau :
Window->Preferences->Java->Installed JREs-> thêm jdk 1.8 và chọn hướng đến thư mục này /usr/lib/jvm/java-8-oracle-1.8.0.181
Sau đó chọn JRE 1.8 vừa thêm vào
Window->Preferences->Java->Compiler-> chọn java 1.8
Cuối cùng chấp nhận để Eclipse biên dịch lại toàn bộ mã trong Workspace để thích ứng với phiên bản java 8 vừa chọn sử dụng
D. Cấu hình Glassfish 3.1.2.2 để dùng Java 8
Tôi dùng Glassfish 3.1.2.2 nên cần phải cấu hình như sau :
Cập nhật phiên bản JRE cho Glassfish :
- Trong tập tin glassfishv3.1.2.2/glassfish/config/asenv.conf -> thêm hoặc thay đổi như sau :
AS_JAVA="/usr/lib/jvm/java-8-oracle-1.8.0.181"
- Trong tập tin glassfishv3.1.2.2/glassfish/config/osgi.properties -> thêm vào cuối tập tin:
jre-1.8=${jre-1.7}
Cuối cùng kiểm tra phiên bản Glassfish và phiên bản Java nó sử dụng :
$ asadmin version -v Version = GlassFish Server Open Source Edition 3.1.2.2 (build 5), JRE version 1.8.0_181 Command version executed successfully.