Ubuntu修改默认JDK
OpenJDK和JDK的区别
在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK。JDK具体指的是SunJDK(更确切的说是OracleJDK)。
OpenJDK是JDK的开放原始码版本,以GPL协议的形式放出。在JDK7的时候,OpenJDK已经成为JDK7的主干开发,Sun JDK7是在OpenJDK7的基础上发布的,其大部分原始码都相同,只有少部分原始码被替换掉。
关于OpenJDK和JDK的区别好几个方面,此处只说明最直观、开发人员更为关心的一点区别:
OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP……,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入。也就是说OpenJDK里面有很多可能经常用的类库是不存在的。因此通常我们会用SunJDK来替换Linux内置的OpenJDK。
JDK替换OpenJDK
下载JDK的压缩包
从oracle官网下载JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
### 解压压缩包
进入下载目录
cd ~/Download
解压tar.gz包
tar -zxvf jdk-8u181-linux-x64.tar.gz
移动JDK
sudo mv jdk1.8.0_181/ /usr/lib/jvm/jdk1.8.0_181/
配置JDK
修改配置文件
sudo vim /etc/profile
在文件末尾添加一下内容
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_181
export CLASSPATH=/usr/lib/jvm/jdk1.8.0_181/lib
export PATH=$PATH:$JAVA_HOME/bin:$CLASSPATH
是配置生效
source /etc/profile
配置默认JDK
创建新的java版本,在shell用update-alternatives命令创建新的系统命令链接:
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_181/bin/javac 1171
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_181/bin/java 1171
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.8.0_181jar 1171
sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/jdk1.8.0_181/bin/javah 1171
sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk1.8.0_181/bin/javap 1171
update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,后面的1171是用来指定当前链接的优先级,最高的优先级将自动被设置为默认版本。可以用下面的命令查看JAVA的版本和优先级:
update-alternatives --display java
选择JAVA的版本
执行命令
update-alternatives --config java
出现一下内容
There are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/jdk1.8.0_181/bin/java 1171 auto mode
1 /usr/lib/jvm/java-10-openjdk-amd64/bin/java 1101 manual mode
2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
* 3 /usr/lib/jvm/jdk1.8.0_181/bin/java 1171 manual mode
选择你所安装的版本:3
配置结束,执行以下命令查看是否替换成功:
java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)