Skip to content
This repository has been archived by the owner on Sep 22, 2024. It is now read-only.

安装 Oracle JDK

Zamir SUN edited this page Jan 4, 2019 · 11 revisions

Fedora 中文用户组不再提供二次打包的 Oracle JDK,该页已经过时。下述内容仅做历史参考。我们将在未来某个时刻归档本页。


在配置 Oracle JDK 开发环境时,许多网络教程都建议在 /etc/profile 添加环境变量。但 Fedora 下虚拟终端 gnome-terminal 默认不是登录 Shell(可在配置中修改),不读取该配置文件,导致系统无法找到 JDK。

现在,社区源添加了 oracle-jdk 安装包,所需配置大大简化。

$ sudo dnf install oracle-jdk8 oracle-jdk7

该包在安装时,从 Oracle 官网下载 JDK。

安装后,有两种方法进行配置。

读取环境变量配置文件

/etc/sysconfig/oracle-jdk 是 JDK 环境变量配置文件,可以添加多个 JDK 版本,方便切换。
该方法适合单用户系统或者普通用户没有修改系统配置文件的情形。

只需在 ~/.bashrc~/.bash_profile 添加以下命令即可:

# JDK variables
test -f /etc/sysconfig/oracle-jdk && . /etc/sysconfig/oracle-jdk ||:

官方维基建议将用户自定环境变量添加到 ~/.bash_profile,它仅在启动交互式登录 Shell时载入。
如果将环境变量添加到 ~/.bashrc,则每次打开一个虚拟终端都将载入该配置,因为所有交互式 Shell 都载入 ~/.bashrc
/etc/sysconfig/oracle-jdk 已做限制,写入 ~/.bashrc 不会造成重复定义环境变量,导致变量嵌套的问题。

alternatives 机制

使用 alternatives 可以修改系统级默认的 JDK,该方法无需设置环境变量,但需要 root 权限,更适合系统全局修改。

$ sudo alternatives --config javac  # 切换 jdk
*  1  /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-15.b17.fc23.x86_64/bin/javac
 + 2  /usr/lib/jvm/jdk1.8.0_66/bin/javac
   3  /usr/lib/jvm/jdk1.7.0_80/bin/javac
$ sudo alternatives --config java   # 切换 jre
*  1  /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-15.b17.fc23.x86_64/jre/bin/java
 + 2  /usr/lib/jvm/jdk1.8.0_66/jre/bin/java
   3  /usr/lib/jvm/jdk1.7.0_80/jre/bin/java