Deepin v15 系统默认的 JDK 是 OpenJDK10,由于 Oracle JDK 比开源的 OpenJDK 更稳定,且现在最常用的版本是 JDK8,所以考虑自行安装 Oracle JDK8,并用 Debian 系列系统自带的 update-alternatives
命令管理多个 JDK。
具体步骤
到 Oracle 官网下载 jdk8,解压后放在 /usr/local/ 目录下。
在
/etc/profile
文件中设置环境变量:1
2
3
4
5# set for java
unset _JAVA_OPTIONS
export JAVA_HOME=/usr/local/jdk1.8.0_211
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin使用
update-alternatives
命令将 jdk8 配置为默认 jdkupdate-alternatives
是 Debian 系列系统中专门用于维护系统命令链接符的工具。用
update-alternatives
命令创建新的系统命令链接并设置优先级:1
2
3
4
5
6
7
8
9
10
11
12
13$ sudo update-alternatives --install /usr/bin/javac javac /usr/local/jdk1.8.0_211/bin/javac 1102
$ sudo update-alternatives --install /usr/bin/java java /usr/local/jdk1.8.0_211/bin/java 1102
$ sudo update-alternatives --install /usr/bin/jar jar /usr/local/jdk1.8.0_211/bin/jar 1102
$ sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/local/jdk1.8.0_211/bin/jar 1102
$ sudo update-alternatives --install /usr/bin/javah javah /usr/local/jdk1.8.0_211/bin/javah 1102
$ sudo update-alternatives --install /usr/bin/javap javap /usr/local/jdk1.8.0_211/bin/javap 1102
# 参数说明:
# sudo update-alternatives --install <link> <name> <path> <priority>
# 1. link: 要将链接创建到哪儿(绝对地址)
# 2. name: 命令链接符名称
# 3. path: 要使用的新命令的路径(绝对地址)
# 4. priority: 命令的优先级,当 alternative 为自动模式时,系统默认启用优先级最高的链接由于 alternative 默认是自动模式,且 jdk8 的优先级 1102 大于 OpenJDK10 的优先级 1101,所以这样就已经算是设置好了,以后使用
java
、javac
等命令时都会默认调用 jdk8。验证默认 jdk 版本:
1
2$ javac -version
javac 1.8.0_211
update-alternatives
命令的其他常用参数
查看某个命令的链接组信息:
1
$ sudo update-alternatives --display java # <name>
手动设置命令的 alternative:
1
$ sudo update-alternatives --config java # <name>
移除某个 alternative:
1
$ sudo update-alternatives --remove java /usr/local/jdk1.8.0_211/bin/java # <name> <path>