SDB:安装 Java

跳转到:导航搜索


Icon-obsolete.png
本文或本节指的是版本“1.8”,现已过时!
请参阅本文的讨论页面以获取更多信息。

在 openSUSE 上测试

推荐文章

Icon-manual.png

相关文章

Icon-help.png


本文是关于在 openSUSE 上安装 Oracle Java 的。

情况

由于 Oracle (Sun) 许可策略,Java JRE 不能再包含在 openSUSE 的软件源中。这是一份关于如何安装最新安全版本的快速指南。在Oracle Java 网站上,有两种版本可供下载:

  • Java 运行时环境 (JRE):包含 Java 虚拟机、库、Java 应用程序启动器、Web 浏览器以及通常运行 Java 语言编写的程序所需的一切。
  • Java 开发工具包 (JDK):除了上述 Java 运行时环境 (JRE) 之外,它还包含开发、测试和调试 Java 语言编写的程序所需的所有工具。

JRE 安装是 JDK 安装的简化版本,因此将首先展示安装 JRE 的过程。如果有人只想安装 Java 运行时环境,JRE 安装的差异应该会更清晰。当两个包具有相同的版本号时,安装它们并无(太大)用处。
以下针对 JDK 和 JRE 安装的两种过程,都将使用相同的名称,即jdk_Oracle,作为指向 Oracle Java 环境所在文件夹的符号链接。这样,即使按顺序执行这两个过程,因为 JDK 和 JRE 安装在不同的目录中,但只有后者将被您的系统使用(或者符号链接指向的那个)。

注意:在实际进一步操作之前,请阅读此 SDB 的“讨论”以获取可能尚未被接受为主 SDB 一部分的更新和贡献。


使用 Oracle RPM 安装 Java 运行时环境

此安装方法的目的是实现快速简便的设置。您将没有 Icedtea Web 插件,只有官方 Java。此方法推荐给需要 Oracle Java 才能访问坚持使用正版 Java 的网站的用户。

在将软件包下载到您的系统之前,请确定您正在运行的架构。要确定您的架构,请通过运行命令 (KDE 中为 Alt+F2):konsolexterm 打开终端。

执行命令

uname -m

如果输出是

i586
i686

您拥有 32 位架构

如果输出是

x86_64

您拥有 64 位架构

Java.com下载官方 RPM,并使用您喜欢的任何方法安装 RPM。在大多数情况下,导航到文件管理器中的 RPM 并单击它即可安装。或者您可以通过终端安装,例如运行命令 (KDE 中为 Alt+F2):konsolexterm 打开终端,然后输入

su

输入您的 root 密码,这将使您进入“超级用户”模式。以普通用户身份导航到下载位置,Firefox 或 Chrome 通常会将其放在~/Downloads

cd ~/Downloads

要使用终端安装,请键入

rpm -ivh jre-8u351-linux-i586.rpm

或者,如果您下载了 64 位 RPM

rpm -ivh jre-8u351-linux-x64.rpm
Icon-warning.png
警告:安装可能会失败并出现
错误:依赖项失败
/usr/sbin/alternatives 被 jre 需要...

在这种情况下,您可以创建链接

ln -s /usr/sbin/update-alternatives /usr/sbin/alternatives

然后运行rpm使用--nodeps选项如下

rpm -ivh --nodeps jre-8u351-linux-i586.rpm

或者,如果您下载了 64 位 RPM

rpm -ivh --nodeps jre-8u351-linux-x64.rpm

确保/usr/sbin/alternatives是唯一失败的依赖项,否则您可能会破坏安装。

Icon-warning.png
警告:或在“解压 JAR 文件...”后失败,并出现
update-alternatives: 错误: 备用 javaws 不能成为 java 的从属: 它是 ... 的从属

在这种情况下(多个 Java 版本)并取决于“update-alternative”错误,必须创建指向您想要/需要使用的新 Java 命令版本的符号链接。

update-alternatives --install  "/usr/bin/java" "java" "/usr/java/jre1.8.0_351-amd64/bin/java" 1

它会创建到我想要使用的 Java 命令版本的新链接,我只需要使用  将其指定给我的系统。

update-alternatives --config java

然后

 java -version
 java version "1.8.0_351"
 Java(TM) SE Runtime Environment (build 1.8.0_351-b08)
 Java HotSpot(TM) 64-Bit Server VM (build 25.351-b08, mixed mode)

安装完成后,您可能需要删除 icedtea-web。以 root 身份复制并粘贴以下内容到终端

zypper rm icedtea-web

同意删除软件包。完成后,复制并粘贴以下内容

update-alternatives --install "/usr/bin/java" "java" "/usr/java/latest/bin/java" 1
update-alternatives --set java /usr/java/latest/bin/java
update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/java/latest/bin/javaws" 1 update-alternatives --set javaws /usr/java/latest/bin/javaws

我们感兴趣的是 jre 软件包附带的文件 libnpjp2.so(该文件位置可能随时因 SUSE 版本和 jre 软件包版本而异)。您可以使用 rpm 命令检查该文件。

rpm -ql $(rpm -qa | grep jre) | grep libnpjp2.so

它应该返回其绝对路径的结果。

您现在可以创建链接并将其指向您的浏览器插件。以 root 身份粘贴以下命令。

对于 32 位架构

plugin=$(rpm -ql $(rpm -qa | grep jre) | grep libnpjp2.so) && ln -svf "$plugin" /usr/lib/browser-plugins/ 

对于 64 位架构

plugin=$(rpm -ql $(rpm -qa | grep jre) | grep libnpjp2.so) && ln -svf "$plugin" /usr/lib64/browser-plugins/

Java 和相应链接的安装已完成。您现在可以在系统上的任何 Web 浏览器中使用 Java 小程序。对于 Java Web 服务,您仍然需要更新桌面环境和/或 Web 浏览器中的文件关联。

更新文件关联

通过移除 `icedtea-web` 功能,您也从桌面环境中移除了所有与 OpenJDK 的文件关联。这意味着您将无法再从网络浏览器或文件管理器启动 Java 可执行文件(除了小程序)。安装 Oracle Java RPM 不会恢复这些关联;您需要手动重新添加它们。例如,在 KDE Plasma 中,您必须启动“系统设置”,然后激活“默认应用程序”小程序并选择“文件关联”。使用搜索框搜索“java”。对于返回的每个相关文件类型,您需要添加一个应用程序关联。例如,对于 application/x-java-archive,您应该添加一个关联到 "/usr/bin/java -jar %U",对于 application/x-java-jnlp-file,您应该添加一个关联到 "/usr/bin/javaws %U"。

检查 Java 插件

如果您想查看插件是否已正确安装,请重新启动浏览器(如果尚未重启),并在地址栏中输入以下内容。对于 Firefox 52 ESR 及更低版本,请输入

about:plugins

对于 Chrome / Chromium(45 版本之前)输入

chrome://plugins/

请注意,较新的浏览器不支持 Java。

限制 Java 磁盘使用

虽然菜单中没有图标,但有一个 Java 控制面板,允许您轻松调整许多设置。要访问它,请打开终端或在 KDE 中按 Alt+F2 运行命令并输入

jcontrol
  • 点击“临时互联网文件”下的设置...
  • 磁盘空间下,将存储临时文件的磁盘空间量调整为您选择的大小。50 到 100 MB 应该足够。
  • 点击确定关闭对话框,然后点击确定关闭 Java 控制面板

使用 Oracle RPM 安装 Java 开发工具包

获取并安装 rpm 包

与 JRE 一样,从Oracle Java 网站获取适合您架构的 rpm。同样通过以下方式安装:

# sudo rpm -ivh jdk-8u5-linux-x64.rpm

(如果需要,请当然调整文件名)。

用于 gzip 手册页并安装 update-alternative 的 Bash 脚本

现在,要将其包含在 update-alternatives 中(例如,使其在您的 $PATH 中,与 Android Studio 或类似工具一起使用),您可以使用以下脚本(保存为 some-file-name.sh 并运行

# sh some-file-name.sh

或者使其可执行并运行,无论您喜欢哪种方式)

#!/bin/bash

sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/appletviewer.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/apt.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/extcheck.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/jar.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/jarsigner.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/javac.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/javadoc.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/javah.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/javap.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/jcmd.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/jconsole.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/jdb.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/jhat.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/jinfo.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/jmap.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/jps.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/jrunscript.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/jsadebugd.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/jstack.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/jstat.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/jstatd.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/native2ascii.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/pack200.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/rmic.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/schemagen.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/serialver.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/unpack200.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/wsgen.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/wsimport.1)
sudo gzip $(readlink -f /usr/java/jdk1.8.0_05/man/man1/xjc.1)
sudo /usr/sbin/update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.8.0_05/bin/javac 3 --slave /usr/bin/appletviewer appletviewer /usr/java/jdk1.8.0_05/bin/appletviewer --slave /usr/share/man/man1/appletviewer.1.gz appletviewer.1.gz /usr/java/jabout:pluginsdk1.8.0_05/man/man1/appletviewer.1.gz --slave /usr/bin/extcheck extcheck /usr/java/jdk1.8.0_05/bin/extcheck --slave /usr/share/man/man1/extcheck.1.gz extcheck.1.gz /usr/java/jdk1.8.0_05/man/man1/extcheck.1.gz --slave /usr/bin/jar jar /usr/java/jdk1.8.0_05/bin/jar --slave /usr/share/man/man1/jar.1.gz jar.1.gz /usr/java/jdk1.8.0_05/man/man1/jar.1.gz --slave /usr/bin/jarsigner jarsigner /usr/java/jdk1.8.0_05/bin/jarsigner --slave /usr/share/man/man1/jarsigner.1.gz jarsigner.1.gz /usr/java/jdk1.8.0_05/man/man1/jarsigner.1.gz --slave /usr/lib64/jvm/java java_sdk /usr/java/jdk1.8.0_05 --slave /usr/share/man/man1/javac.1.gz javac.1.gz /usr/java/jdk1.8.0_05/man/man1/javac.1.gz --slave /usr/bin/javadoc javadoc /usr/java/jdk1.8.0_05/bin/javadoc --slave /usr/share/man/man1/javadoc.1.gz javadoc.1.gz /usr/java/jdk1.8.0_05/man/man1/javadoc.1.gz --slave /usr/bin/javah javah /usr/java/jdk1.8.0_05/bin/javah --slave /usr/share/man/man1/javah.1.gz javah.1.gz /usr/java/jdk1.8.0_05/man/man1/javah.1.gz --slave /usr/bin/javap javap /usr/java/jdk1.8.0_05/bin/javap --slave /usr/share/man/man1/javap.1.gz javap.1.gz /usr/java/jdk1.8.0_05/man/man1/javap.1.gz --slave /usr/share/man/man1/jcmd.1.gz jcmd.1.gz /usr/java/jdk1.8.0_05/man/man1/jcmd.1.gz --slave /usr/bin/jconsole jconsole /usr/java/jdk1.8.0_05/bin/jconsole --slave /usr/share/man/man1/jconsole.1.gz jconsole.1.gz /usr/java/jdk1.8.0_05/man/man1/jconsole.1.gz --slave /usr/bin/jdb jdb /usr/java/jdk1.8.0_05/bin/jdb --slave /usr/share/man/man1/jdb.1.gz jdb.1.gz /usr/java/jdk1.8.0_05/man/man1/jdb.1.gz --slave /usr/bin/jhat jhat /usr/java/jdk1.8.0_05/bin/jhat --slave /usr/share/man/man1/jhat.1.gz jhat.1.gz /usr/java/jdk1.8.0_05/man/man1/jhat.1.gz --slave /usr/bin/jinfo jinfo /usr/java/jdk1.8.0_05/bin/jinfo --slave /usr/share/man/man1/jinfo.1.gz jinfo.1.gz /usr/java/jdk1.8.0_05/man/man1/jinfo.1.gz --slave /usr/bin/jmap jmap /usr/java/jdk1.8.0_05/bin/jmap --slave /usr/share/man/man1/jmap.1.gz jmap.1.gz /usr/java/jdk1.8.0_05/man/man1/jmap.1.gz --slave /usr/bin/jps jps /usr/java/jdk1.8.0_05/bin/jps --slave /usr/share/man/man1/jps.1.gz jps.1.gz /usr/java/jdk1.8.0_05/man/man1/jps.1.gz --slave /usr/bin/jrunscript jrunscript /usr/java/jdk1.8.0_05/bin/jrunscript --slave /usr/share/man/man1/jrunscript.1.gz jrunscript.1.gz /usr/java/jdk1.8.0_05/man/man1/jrunscript.1.gz --slave /usr/bin/jsadebugd jsadebugd /usr/java/jdk1.8.0_05/bin/jsadebugd --slave /usr/share/man/man1/jsadebugd.1.gz jsadebugd.1.gz /usr/java/jdk1.8.0_05/man/man1/jsadebugd.1.gz --slave /usr/bin/jstack jstack /usr/java/jdk1.8.0_05/bin/jstack --slave /usr/share/man/man1/jstack.1.gz jstack.1.gz /usr/java/jdk1.8.0_05/man/man1/jstack.1.gz --slave /usr/bin/jstat jstat /usr/java/jdk1.8.0_05/bin/jstat --slave /usr/share/man/man1/jstat.1.gz jstat.1.gz /usr/java/jdk1.8.0_05/man/man1/jstat.1.gz --slave /usr/bin/jstatd jstatd /usr/java/jdk1.8.0_05/bin/jstatd --slave /usr/share/man/man1/jstatd.1.gz jstatd.1.gz /usr/java/jdk1.8.0_05/man/man1/jstatd.1.gz --slave /usr/bin/native2ascii native2ascii /usr/java/jdk1.8.0_05/bin/native2ascii --slave /usr/share/man/man1/native2ascii.1.gz native2ascii.1.gz /usr/java/jdk1.8.0_05/man/man1/native2ascii.1.gz --slave /usr/bin/pack200 pack200 /usr/java/jdk1.8.0_05/bin/pack200 --slave /usr/share/man/man1/pack200.1.gz pack200.1.gz /usr/java/jdk1.8.0_05/man/man1/pack200.1.gz --slave /usr/bin/rmic rmic /usr/java/jdk1.8.0_05/bin/rmic --slave /usr/share/man/man1/rmic.1.gz rmic.1.gz /usr/java/jdk1.8.0_05/man/man1/rmic.1.gz --slave /usr/bin/schemagen schemagen /usr/java/jdk1.8.0_05/bin/schemagen --slave /usr/share/man/man1/schemagen.1.gz schemagen.1.gz /usr/java/jdk1.8.0_05/man/man1/schemagen.1.gz --slave /usr/bin/serialver serialver /usr/java/jdk1.8.0_05/bin/serialver --slave /usr/share/man/man1/serialver.1.gz serialver.1.gz /usr/java/jdk1.8.0_05/man/man1/serialver.1.gz --slave /usr/bin/unpack200 unpack200 /usr/java/jdk1.8.0_05/bin/unpack200 --slave /usr/share/man/man1/unpack200.1.gz unpack200.1.gz /usr/java/jdk1.8.0_05/man/man1/unpack200.1.gz --slave /usr/bin/wsgen wsgen /usr/java/jdk1.8.0_05/bin/wsgen --slave /usr/share/man/man1/wsgen.1.gz wsgen.1.gz /usr/java/jdk1.8.0_05/man/man1/wsgen.1.gz --slave /usr/bin/wsimport wsimport /usr/java/jdk1.8.0_05/bin/wsimport --slave /usr/share/man/man1/wsimport.1.gz wsimport.1.gz /usr/java/jdk1.8.0_05/man/man1/wsimport.1.gz --slave /usr/bin/xjc xjc /usr/java/jdk1.8.0_05/bin/xjc --slave /usr/share/man/man1/xjc.1.gz xjc.1.gz /usr/java/jdk1.8.0_05/man/man1/xjc.1.gz


包含开发工具包的程序 (JDK)

本文的原始作者没有描述本节与前一节有何不同,但可能是为了描述如何安装 Oracle SE 7,其目录布局与后来的 Oracle SE 不同。无论如何,要安装 Oracle SE JDK 7(32 位或 64 位),用户可能希望使用以下位置的脚本,这使得安装简单易行(完全替换本节后面的所有内容)。除非 Oracle 因某种原因决定发布更晚的版本,否则脚本应该按原样工作,但如果需要,可以根据需要进行编辑(如果需要此类编辑,请提交问题)

https://github.com/putztzu/openSUSE_Oracle_Java_Install

.


包含完整的 Java 环境。

Icon-warning.png
警告:从本节到本节末尾,对于任何小节(包括更新 Oracle Java),如果您的系统是 64 位架构,则任何出现的/usr/lib必须替换为/usr/lib64。插入命令时,请遵循适用于您的系统架构的相应小节。

安装 Oracle Java SE

  • Oracle Java 网站下载 Oracle Java SE 开发工具包 (JDK)。将其保存到易于记住的目录(例如/tmp)
下载适合您系统架构的版本。例如:Oracle Java 版本 1.7.0_7
Linux x86 (32 位架构)
jdk-7u7-linux-i586.tar.gz
Linux x64 (64 位架构)
jdk-7u7-linux-x64.tar.gz
  • 打开终端并运行
    cd /path/to/downloaded/java
  • 使用以下命令解压(作为 root 用户,以确保)
    sudo tar -xzf ./jdk-7uX-linux-XX.tar.gz
  • 修复已解压目录及其内容的权限
    sudo chown -R root:root jdk1.X.X_XX/
Linux x86 (32 位架构)
  • Open JDK 默认安装在/usr/lib,所以我们也把 Oracle Java 移动到/usr/lib以及
    sudo mv ./jdk1.X.X_XX/ /usr/lib/
  • 创建一个指向 /usr/lib/jdk1.X.X_XX/ 的符号链接(这对于将来的更新很重要)
    sudo ln -s -T /usr/lib/jdk1.X.X_XX/ /usr/lib/jdk_Oracle
Linux x86_64 (64 位架构)
  • Open JDK 默认安装在/usr/lib64,所以我们也把 Oracle Java 移动到/usr/lib64以及
    sudo mv ./jdk1.X.X_XX/ /usr/lib64/
  • 创建一个指向 /usr/lib64/jdk1.X.X_XX/ 的符号链接(这对于将来更新很重要)
    sudo ln -s -T /usr/lib64/jdk1.X.X_XX/ /usr/lib64/jdk_Oracle

通知系统

Java 应用程序启动器

  • 压缩您安装中涉及的手册文件
Linux x86 (32 位架构)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/java.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/keytool.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/orbd.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/policytool.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/rmid.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/rmiregistry.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/servertool.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/tnameserv.1)
Linux x86_64 (64 位架构)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/java.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/keytool.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/orbd.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/policytool.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/rmid.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/rmiregistry.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/servertool.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/tnameserv.1)
  • 准备 jvm-exports 的目录 (特定于 1.7.0 版本)
Linux x86 (32 位架构)
  1. sudo mkdir /usr/lib/jvm-exports/jdk_Oracle
    cd /usr/lib/jvm-exports/jdk_Oracle
    sudo ln -s /usr/lib/jdk_Oracle/jre/lib/rt.jar jaas-1.7.0_Orac.jar
    sudo ln -s jaas-1.7.0_Orac.jar jaas-1.7.0.jar
    sudo ln -s jaas-1.7.0_Orac.jar jaas.jar
    sudo ln -s /usr/lib/jdk_Oracle/jre/lib/jce.jar jce-1.7.0_Orac.jar
    sudo ln -s jce-1.7.0_Orac.jar jce-1.7.0.jar
    sudo ln -s jce-1.7.0_Orac.jar jce.jar
    sudo ln -s /usr/lib/jdk_Oracle/jre/lib/rt.jar jdbc-stdext-1.7.0_Orac.jar
    sudo ln -s jdbc-stdext-1.7.0_Orac.jar jdbc-stdext-1.7.0.jar
    sudo ln -s jdbc-stdext-1.7.0_Orac.jar jdbc-stdext-3.0.jar
    sudo ln -s jdbc-stdext-1.7.0_Orac.jar jdbc-stdext.jar
    sudo ln -s /usr/lib/jdk_Oracle/jre/lib/rt.jar jndi-1.7.0_Orac.jar
    sudo ln -s jndi-1.7.0_Orac.jar jndi-1.7.0.jar
    sudo ln -s /usr/lib/jdk_Oracle/jre/lib/rt.jar jndi-cos-1.7.0_Orac.jar
    sudo ln -s jndi-cos-1.7.0_Orac.jar jndi-cos-1.7.0.jar
    sudo ln -s jndi-cos-1.7.0_Orac.jar jndi-cos.jar
    sudo ln -s jndi-1.7.0_Orac.jar jndi.jar
    sudo ln -s /usr/lib/jdk_Oracle/jre/lib/rt.jar jndi-ldap-1.7.0_Orac.jar
    sudo ln -s jndi-ldap-1.7.0_Orac.jar jndi-ldap-1.7.0.jar
    sudo ln -s jndi-ldap-1.7.0_Orac.jar jndi-ldap.jar
    sudo ln -s /usr/lib/jdk_Oracle/jre/lib/rt.jar jndi-rmi-1.7.0_Orac.jar
    sudo ln -s jndi-rmi-1.7.0_Orac.jar jndi-rmi-1.7.0.jar
    sudo ln -s jndi-rmi-1.7.0_Orac.jar jndi-rmi.jar
    sudo ln -s /usr/lib/jdk_Oracle/jre/lib/jsse.jar jsse-1.7.0_Orac.jar
    sudo ln -s jsse-1.7.0_Orac.jar jsse-1.7.0.jar
    sudo ln -s jsse-1.7.0_Orac.jar jsse.jar
    sudo ln -s /usr/lib/jdk_Oracle/jre/lib/rt.jar sasl-1.7.0_Orac.jar
    sudo ln -s sasl-1.7.0_Orac.jar sasl-1.7.0.jar
    sudo ln -s sasl-1.7.0_Orac.jar sasl.jar
  2. sudo /usr/sbin/update-alternatives --install /usr/bin/java java /usr/lib/jdk_Oracle/bin/java 3 --slave /usr/share/man/man1/java.1.gz java.1.gz /usr/lib/jdk_Oracle/man/man1/java.1.gz --slave /usr/lib/jvm/jre jre /usr/lib/jdk_Oracle/jre --slave /usr/lib/jvm-exports/jre jre_exports /usr/lib/jvm-exports/jdk_Oracle --slave /usr/bin/keytool keytool /usr/lib/jdk_Oracle/bin/keytool --slave /usr/share/man/man1/keytool.1.gz keytool.1.gz /usr/lib/jdk_Oracle/man/man1/keytool.1.gz --slave /usr/bin/orbd orbd /usr/lib/jdk_Oracle/bin/orbd --slave /usr/share/man/man1/orbd.1.gz orbd.1.gz /usr/lib/jdk_Oracle/man/man1/orbd.1.gz --slave /usr/bin/policytool policytool /usr/lib/jdk_Oracle/bin/policytool --slave /usr/share/man/man1/policytool.1.gz policytool.1.gz /usr/lib/jdk_Oracle/man/man1/policytool.1.gz --slave /usr/bin/rmid rmid /usr/lib/jdk_Oracle/bin/rmid --slave /usr/share/man/man1/rmid.1.gz rmid.1.gz /usr/lib/jdk_Oracle/man/man1/rmid.1.gz --slave /usr/bin/rmiregistry rmiregistry /usr/lib/jdk_Oracle/bin/rmiregistry --slave /usr/share/man/man1/rmiregistry.1.gz rmiregistry.1.gz /usr/lib/jdk_Oracle/man/man1/rmiregistry.1.gz --slave /usr/bin/servertool servertool /usr/lib/jdk_Oracle/bin/servertool --slave /usr/share/man/man1/servertool.1.gz servertool.1.gz /usr/lib/jdk_Oracle/man/man1/servertool.1.gz --slave /usr/bin/tnameserv tnameserv /usr/lib/jdk_Oracle/bin/tnameserv --slave /usr/share/man/man1/tnameserv.1.gz tnameserv.1.gz /usr/lib/jdk_Oracle/man/man1/tnameserv.1.gz
Linux x86_64 (64 位架构)
  1. sudo mkdir /usr/lib64/jvm-exports/jdk_Oracle
    cd /usr/lib64/jvm-exports/jdk_Oracle
    sudo ln -s /usr/lib64/jdk_Oracle/jre/lib/rt.jar jaas-1.7.0_Orac.jar
    sudo ln -s jaas-1.7.0_Orac.jar jaas-1.7.0.jar
    sudo ln -s jaas-1.7.0_Orac.jar jaas.jar
    sudo ln -s /usr/lib64/jdk_Oracle/jre/lib/jce.jar jce-1.7.0_Orac.jar
    sudo ln -s jce-1.7.0_Orac.jar jce-1.7.0.jar
    sudo ln -s jce-1.7.0_Orac.jar jce.jar
    sudo ln -s /usr/lib64/jdk_Oracle/jre/lib/rt.jar jdbc-stdext-1.7.0_Orac.jar
    sudo ln -s jdbc-stdext-1.7.0_Orac.jar jdbc-stdext-1.7.0.jar
    sudo ln -s jdbc-stdext-1.7.0_Orac.jar jdbc-stdext-3.0.jar
    sudo ln -s jdbc-stdext-1.7.0_Orac.jar jdbc-stdext.jar
    sudo ln -s /usr/lib64/jdk_Oracle/jre/lib/rt.jar jndi-1.7.0_Orac.jar
    sudo ln -s jndi-1.7.0_Orac.jar jndi-1.7.0.jar
    sudo ln -s /usr/lib64/jdk_Oracle/jre/lib/rt.jar jndi-cos-1.7.0_Orac.jar
    sudo ln -s jndi-cos-1.7.0_Orac.jar jndi-cos-1.7.0.jar
    sudo ln -s jndi-cos-1.7.0_Orac.jar jndi-cos.jar
    sudo ln -s jndi-1.7.0_Orac.jar jndi.jar
    sudo ln -s /usr/lib64/jdk_Oracle/jre/lib/rt.jar jndi-ldap-1.7.0_Orac.jar
    sudo ln -s jndi-ldap-1.7.0_Orac.jar jndi-ldap-1.7.0.jar
    sudo ln -s jndi-ldap-1.7.0_Orac.jar jndi-ldap.jar
    sudo ln -s /usr/lib64/jdk_Oracle/jre/lib/rt.jar jndi-rmi-1.7.0_Orac.jar
    sudo ln -s jndi-rmi-1.7.0_Orac.jar jndi-rmi-1.7.0.jar
    sudo ln -s jndi-rmi-1.7.0_Orac.jar jndi-rmi.jar
    sudo ln -s /usr/lib64/jdk_Oracle/jre/lib/jsse.jar jsse-1.7.0_Orac.jar
    sudo ln -s jsse-1.7.0_Orac.jar jsse-1.7.0.jar
    sudo ln -s jsse-1.7.0_Orac.jar jsse.jar
    sudo ln -s /usr/lib64/jdk_Oracle/jre/lib/rt.jar sasl-1.7.0_Orac.jar
    sudo ln -s sasl-1.7.0_Orac.jar sasl-1.7.0.jar
    sudo ln -s sasl-1.7.0_Orac.jar sasl.jar
  2. sudo /usr/sbin/update-alternatives --install /usr/bin/java java /usr/lib64/jdk_Oracle/bin/java 3 --slave /usr/share/man/man1/java.1.gz java.1.gz /usr/lib64/jdk_Oracle/man/man1/java.1.gz --slave /usr/lib64/jvm/jre jre /usr/lib64/jdk_Oracle/jre --slave /usr/lib64/jvm-exports/jre jre_exports /usr/lib64/jvm-exports/jdk_Oracle --slave /usr/bin/keytool keytool /usr/lib64/jdk_Oracle/bin/keytool --slave /usr/share/man/man1/keytool.1.gz keytool.1.gz /usr/lib64/jdk_Oracle/man/man1/keytool.1.gz --slave /usr/bin/orbd orbd /usr/lib64/jdk_Oracle/bin/orbd --slave /usr/share/man/man1/orbd.1.gz orbd.1.gz /usr/lib64/jdk_Oracle/man/man1/orbd.1.gz --slave /usr/bin/policytool policytool /usr/lib64/jdk_Oracle/bin/policytool --slave /usr/share/man/man1/policytool.1.gz policytool.1.gz /usr/lib64/jdk_Oracle/man/man1/policytool.1.gz --slave /usr/bin/rmid rmid /usr/lib64/jdk_Oracle/bin/rmid --slave /usr/share/man/man1/rmid.1.gz rmid.1.gz /usr/lib64/jdk_Oracle/man/man1/rmid.1.gz --slave /usr/bin/rmiregistry rmiregistry /usr/lib64/jdk_Oracle/bin/rmiregistry --slave /usr/share/man/man1/rmiregistry.1.gz rmiregistry.1.gz /usr/lib64/jdk_Oracle/man/man1/rmiregistry.1.gz --slave /usr/bin/servertool servertool /usr/lib64/jdk_Oracle/bin/servertool --slave /usr/share/man/man1/servertool.1.gz servertool.1.gz /usr/lib64/jdk_Oracle/man/man1/servertool.1.gz --slave /usr/bin/tnameserv tnameserv /usr/lib64/jdk_Oracle/bin/tnameserv --slave /usr/share/man/man1/tnameserv.1.gz tnameserv.1.gz /usr/lib64/jdk_Oracle/man/man1/tnameserv.1.gz

Java 编译器

  • 压缩您安装中涉及的手册文件
Linux x86 (32 位架构)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/appletviewer.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/apt.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/extcheck.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/jar.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/jarsigner.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/javac.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/javadoc.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/javah.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/javap.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/jcmd.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/jconsole.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/jdb.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/jhat.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/jinfo.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/jmap.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/jps.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/jrunscript.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/jsadebugd.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/jstack.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/jstat.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/jstatd.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/native2ascii.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/pack200.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/rmic.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/schemagen.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/serialver.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/unpack200.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/wsgen.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/wsimport.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/xjc.1)

(jvm-exports 的目录:与启动器的目录相同。)

sudo /usr/sbin/update-alternatives --install /usr/bin/javac javac /usr/lib/jdk_Oracle/bin/javac 3 \
--slave /usr/bin/appletviewer appletviewer /usr/lib/jdk_Oracle/bin/appletviewer \
--slave /usr/share/man/man1/appletviewer.1.gz appletviewer.1.gz /usr/lib/jdk_Oracle/man/man1/appletviewer.1.gz \
--slave /usr/bin/apt apt /usr/lib/jdk_Oracle/bin/apt \
--slave /usr/share/man/man1/apt.1.gz apt.1.gz /usr/lib/jdk_Oracle/man/man1/apt.1.gz \
--slave /usr/bin/extcheck extcheck /usr/lib/jdk_Oracle/bin/extcheck \
--slave /usr/share/man/man1/extcheck.1.gz extcheck.1.gz /usr/lib/jdk_Oracle/man/man1/extcheck.1.gz \
--slave /usr/bin/jar jar /usr/lib/jdk_Oracle/bin/jar \
--slave /usr/share/man/man1/jar.1.gz jar.1.gz /usr/lib/jdk_Oracle/man/man1/jar.1.gz \
--slave /usr/bin/jarsigner jarsigner /usr/lib/jdk_Oracle/bin/jarsigner \
--slave /usr/share/man/man1/jarsigner.1.gz jarsigner.1.gz /usr/lib/jdk_Oracle/man/man1/jarsigner.1.gz \
--slave /usr/lib/jvm/java java_sdk /usr/lib/jdk_Oracle \
--slave /usr/lib/jvm-exports/java java_sdk_exports /usr/lib/jvm-exports/jdk_Oracle \
--slave /usr/share/man/man1/javac.1.gz javac.1.gz /usr/lib/jdk_Oracle/man/man1/javac.1.gz \
--slave /usr/bin/javadoc javadoc /usr/lib/jdk_Oracle/bin/javadoc \
--slave /usr/share/man/man1/javadoc.1.gz javadoc.1.gz /usr/lib/jdk_Oracle/man/man1/javadoc.1.gz \
--slave /usr/bin/javah javah /usr/lib/jdk_Oracle/bin/javah \
--slave /usr/share/man/man1/javah.1.gz javah.1.gz /usr/lib/jdk_Oracle/man/man1/javah.1.gz \
--slave /usr/bin/javap javap /usr/lib/jdk_Oracle/bin/javap \
--slave /usr/share/man/man1/javap.1.gz javap.1.gz /usr/lib/jdk_Oracle/man/man1/javap.1.gz \
--slave /usr/share/man/man1/jcmd.1.gz jcmd.1.gz /usr/lib/jdk_Oracle/man/man1/jcmd.1.gz \
--slave /usr/bin/jconsole jconsole /usr/lib/jdk_Oracle/bin/jconsole \
--slave /usr/share/man/man1/jconsole.1.gz jconsole.1.gz /usr/lib/jdk_Oracle/man/man1/jconsole.1.gz \
--slave /usr/bin/jdb jdb /usr/lib/jdk_Oracle/bin/jdb \
--slave /usr/share/man/man1/jdb.1.gz jdb.1.gz /usr/lib/jdk_Oracle/man/man1/jdb.1.gz \
--slave /usr/bin/jhat jhat /usr/lib/jdk_Oracle/bin/jhat \
--slave /usr/share/man/man1/jhat.1.gz jhat.1.gz /usr/lib/jdk_Oracle/man/man1/jhat.1.gz \
--slave /usr/bin/jinfo jinfo /usr/lib/jdk_Oracle/bin/jinfo \
--slave /usr/share/man/man1/jinfo.1.gz jinfo.1.gz /usr/lib/jdk_Oracle/man/man1/jinfo.1.gz \
--slave /usr/bin/jmap jmap /usr/lib/jdk_Oracle/bin/jmap \
--slave /usr/share/man/man1/jmap.1.gz jmap.1.gz /usr/lib/jdk_Oracle/man/man1/jmap.1.gz \
--slave /usr/bin/jps jps /usr/lib/jdk_Oracle/bin/jps \
--slave /usr/share/man/man1/jps.1.gz jps.1.gz /usr/lib/jdk_Oracle/man/man1/jps.1.gz \
--slave /usr/bin/jrunscript jrunscript /usr/lib/jdk_Oracle/bin/jrunscript \
--slave /usr/share/man/man1/jrunscript.1.gz jrunscript.1.gz /usr/lib/jdk_Oracle/man/man1/jrunscript.1.gz \
--slave /usr/bin/jsadebugd jsadebugd /usr/lib/jdk_Oracle/bin/jsadebugd \
--slave /usr/share/man/man1/jsadebugd.1.gz jsadebugd.1.gz /usr/lib/jdk_Oracle/man/man1/jsadebugd.1.gz \
--slave /usr/bin/jstack jstack /usr/lib/jdk_Oracle/bin/jstack \
--slave /usr/share/man/man1/jstack.1.gz jstack.1.gz /usr/lib/jdk_Oracle/man/man1/jstack.1.gz \
--slave /usr/bin/jstat jstat /usr/lib/jdk_Oracle/bin/jstat \
--slave /usr/share/man/man1/jstat.1.gz jstat.1.gz /usr/lib/jdk_Oracle/man/man1/jstat.1.gz \
--slave /usr/bin/jstatd jstatd /usr/lib/jdk_Oracle/bin/jstatd \
--slave /usr/share/man/man1/jstatd.1.gz jstatd.1.gz /usr/lib/jdk_Oracle/man/man1/jstatd.1.gz \
--slave /usr/bin/native2ascii native2ascii /usr/lib/jdk_Oracle/bin/native2ascii \
--slave /usr/share/man/man1/native2ascii.1.gz native2ascii.1.gz /usr/lib/jdk_Oracle/man/man1/native2ascii.1.gz \
--slave /usr/bin/pack200 pack200 /usr/lib/jdk_Oracle/bin/pack200 \
--slave /usr/share/man/man1/pack200.1.gz pack200.1.gz /usr/lib/jdk_Oracle/man/man1/pack200.1.gz \
--slave /usr/bin/rmic rmic /usr/lib/jdk_Oracle/bin/rmic \
--slave /usr/share/man/man1/rmic.1.gz rmic.1.gz /usr/lib/jdk_Oracle/man/man1/rmic.1.gz \
--slave /usr/bin/schemagen schemagen /usr/lib/jdk_Oracle/bin/schemagen \
--slave /usr/share/man/man1/schemagen.1.gz schemagen.1.gz /usr/lib/jdk_Oracle/man/man1/schemagen.1.gz \
--slave /usr/bin/serialver serialver /usr/lib/jdk_Oracle/bin/serialver \
--slave /usr/share/man/man1/serialver.1.gz serialver.1.gz /usr/lib/jdk_Oracle/man/man1/serialver.1.gz \
--slave /usr/bin/unpack200 unpack200 /usr/lib/jdk_Oracle/bin/unpack200 \
--slave /usr/share/man/man1/unpack200.1.gz unpack200.1.gz /usr/lib/jdk_Oracle/man/man1/unpack200.1.gz \
--slave /usr/bin/wsgen wsgen /usr/lib/jdk_Oracle/bin/wsgen \
--slave /usr/share/man/man1/wsgen.1.gz wsgen.1.gz /usr/lib/jdk_Oracle/man/man1/wsgen.1.gz \
--slave /usr/bin/wsimport wsimport /usr/lib/jdk_Oracle/bin/wsimport \
--slave /usr/share/man/man1/wsimport.1.gz wsimport.1.gz /usr/lib/jdk_Oracle/man/man1/wsimport.1.gz \
--slave /usr/bin/xjc xjc /usr/lib/jdk_Oracle/bin/xjc \
--slave /usr/share/man/man1/xjc.1.gz xjc.1.gz /usr/lib/jdk_Oracle/man/man1/xjc.1.gz
Linux x86_64 (64 位架构)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/appletviewer.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/apt.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/extcheck.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jar.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jarsigner.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/javac.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/javadoc.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/javah.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/javap.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jcmd.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jconsole.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jdb.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jhat.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jinfo.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jmap.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jps.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jrunscript.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jsadebugd.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jstack.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jstat.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jstatd.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/native2ascii.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/pack200.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/rmic.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/schemagen.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/serialver.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/unpack200.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/wsgen.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/wsimport.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/xjc.1)

(jvm-exports 的目录:与启动器使用的目录相同。)

sudo /usr/sbin/update-alternatives --install /usr/bin/javac javac /usr/lib64/jdk_Oracle/bin/javac 3 \
--slave /usr/bin/appletviewer appletviewer /usr/lib64/jdk_Oracle/bin/appletviewer \
--slave /usr/share/man/man1/appletviewer.1.gz appletviewer.1.gz /usr/lib64/jdk_Oracle/man/man1/appletviewer.1.gz \
--slave /usr/bin/apt apt /usr/lib64/jdk_Oracle/bin/apt \
--slave /usr/share/man/man1/apt.1.gz apt.1.gz /usr/lib64/jdk_Oracle/man/man1/apt.1.gz \
--slave /usr/bin/extcheck extcheck /usr/lib64/jdk_Oracle/bin/extcheck \
--slave /usr/share/man/man1/extcheck.1.gz extcheck.1.gz /usr/lib64/jdk_Oracle/man/man1/extcheck.1.gz \
--slave /usr/bin/jar jar /usr/lib64/jdk_Oracle/bin/jar \
--slave /usr/share/man/man1/jar.1.gz jar.1.gz /usr/lib64/jdk_Oracle/man/man1/jar.1.gz \
--slave /usr/bin/jarsigner jarsigner /usr/lib64/jdk_Oracle/bin/jarsigner \
--slave /usr/share/man/man1/jarsigner.1.gz jarsigner.1.gz /usr/lib64/jdk_Oracle/man/man1/jarsigner.1.gz \
--slave /usr/lib64/jvm/java java_sdk /usr/lib64/jdk_Oracle \
--slave /usr/lib64/jvm-exports/java java_sdk_exports /usr/lib64/jvm-exports/jdk_Oracle \
--slave /usr/share/man/man1/javac.1.gz javac.1.gz /usr/lib64/jdk_Oracle/man/man1/javac.1.gz \
--slave /usr/bin/javadoc javadoc /usr/lib64/jdk_Oracle/bin/javadoc \
--slave /usr/share/man/man1/javadoc.1.gz javadoc.1.gz /usr/lib64/jdk_Oracle/man/man1/javadoc.1.gz \
--slave /usr/bin/javah javah /usr/lib64/jdk_Oracle/bin/javah \
--slave /usr/share/man/man1/javah.1.gz javah.1.gz /usr/lib64/jdk_Oracle/man/man1/javah.1.gz \
--slave /usr/bin/javap javap /usr/lib64/jdk_Oracle/bin/javap \
--slave /usr/share/man/man1/javap.1.gz javap.1.gz /usr/lib64/jdk_Oracle/man/man1/javap.1.gz \
--slave /usr/share/man/man1/jcmd.1.gz jcmd.1.gz /usr/lib64/jdk_Oracle/man/man1/jcmd.1.gz \
--slave /usr/bin/jconsole jconsole /usr/lib64/jdk_Oracle/bin/jconsole \
--slave /usr/share/man/man1/jconsole.1.gz jconsole.1.gz /usr/lib64/jdk_Oracle/man/man1/jconsole.1.gz \
--slave /usr/bin/jdb jdb /usr/lib64/jdk_Oracle/bin/jdb \
--slave /usr/share/man/man1/jdb.1.gz jdb.1.gz /usr/lib64/jdk_Oracle/man/man1/jdb.1.gz \
--slave /usr/bin/jhat jhat /usr/lib64/jdk_Oracle/bin/jhat \
--slave /usr/share/man/man1/jhat.1.gz jhat.1.gz /usr/lib64/jdk_Oracle/man/man1/jhat.1.gz \
--slave /usr/bin/jinfo jinfo /usr/lib64/jdk_Oracle/bin/jinfo \
--slave /usr/share/man/man1/jinfo.1.gz jinfo.1.gz /usr/lib64/jdk_Oracle/man/man1/jinfo.1.gz \
--slave /usr/bin/jmap jmap /usr/lib64/jdk_Oracle/bin/jmap \
--slave /usr/share/man/man1/jmap.1.gz jmap.1.gz /usr/lib64/jdk_Oracle/man/man1/jmap.1.gz \
--slave /usr/bin/jps jps /usr/lib64/jdk_Oracle/bin/jps \
--slave /usr/share/man/man1/jps.1.gz jps.1.gz /usr/lib64/jdk_Oracle/man/man1/jps.1.gz \
--slave /usr/bin/jrunscript jrunscript /usr/lib64/jdk_Oracle/bin/jrunscript \
--slave /usr/share/man/man1/jrunscript.1.gz jrunscript.1.gz /usr/lib64/jdk_Oracle/man/man1/jrunscript.1.gz \
--slave /usr/bin/jsadebugd jsadebugd /usr/lib64/jdk_Oracle/bin/jsadebugd \
--slave /usr/share/man/man1/jsadebugd.1.gz jsadebugd.1.gz /usr/lib64/jdk_Oracle/man/man1/jsadebugd.1.gz \
--slave /usr/bin/jstack jstack /usr/lib64/jdk_Oracle/bin/jstack \
--slave /usr/share/man/man1/jstack.1.gz jstack.1.gz /usr/lib64/jdk_Oracle/man/man1/jstack.1.gz \
--slave /usr/bin/jstat jstat /usr/lib64/jdk_Oracle/bin/jstat \
--slave /usr/share/man/man1/jstat.1.gz jstat.1.gz /usr/lib64/jdk_Oracle/man/man1/jstat.1.gz \
--slave /usr/bin/jstatd jstatd /usr/lib64/jdk_Oracle/bin/jstatd \
--slave /usr/share/man/man1/jstatd.1.gz jstatd.1.gz /usr/lib64/jdk_Oracle/man/man1/jstatd.1.gz \
--slave /usr/bin/native2ascii native2ascii /usr/lib64/jdk_Oracle/bin/native2ascii \
--slave /usr/share/man/man1/native2ascii.1.gz native2ascii.1.gz /usr/lib64/jdk_Oracle/man/man1/native2ascii.1.gz \
--slave /usr/bin/pack200 pack200 /usr/lib64/jdk_Oracle/bin/pack200 \
--slave /usr/share/man/man1/pack200.1.gz pack200.1.gz /usr/lib64/jdk_Oracle/man/man1/pack200.1.gz \
--slave /usr/bin/rmic rmic /usr/lib64/jdk_Oracle/bin/rmic \
--slave /usr/share/man/man1/rmic.1.gz rmic.1.gz /usr/lib64/jdk_Oracle/man/man1/rmic.1.gz \
--slave /usr/bin/schemagen schemagen /usr/lib64/jdk_Oracle/bin/schemagen \
--slave /usr/share/man/man1/schemagen.1.gz schemagen.1.gz /usr/lib64/jdk_Oracle/man/man1/schemagen.1.gz \
--slave /usr/bin/serialver serialver /usr/lib64/jdk_Oracle/bin/serialver \
--slave /usr/share/man/man1/serialver.1.gz serialver.1.gz /usr/lib64/jdk_Oracle/man/man1/serialver.1.gz \
--slave /usr/bin/unpack200 unpack200 /usr/lib64/jdk_Oracle/bin/unpack200 \
--slave /usr/share/man/man1/unpack200.1.gz unpack200.1.gz /usr/lib64/jdk_Oracle/man/man1/unpack200.1.gz \
--slave /usr/bin/wsgen wsgen /usr/lib64/jdk_Oracle/bin/wsgen \
--slave /usr/share/man/man1/wsgen.1.gz wsgen.1.gz /usr/lib64/jdk_Oracle/man/man1/wsgen.1.gz \
--slave /usr/bin/wsimport wsimport /usr/lib64/jdk_Oracle/bin/wsimport \
--slave /usr/share/man/man1/wsimport.1.gz wsimport.1.gz /usr/lib64/jdk_Oracle/man/man1/wsimport.1.gz \
--slave /usr/bin/xjc xjc /usr/lib64/jdk_Oracle/bin/xjc \
--slave /usr/share/man/man1/xjc.1.gz xjc.1.gz /usr/lib64/jdk_Oracle/man/man1/xjc.1.gz

Web 浏览器插件

Linux x86 (32 位架构),openSUSE 版本低于 Leap 15.0
sudo /usr/sbin/update-alternatives --install /usr/lib/browser-plugins/javaplugin.so javaplugin /usr/lib/jdk_Oracle/jre/lib/i386/libnpjp2.so 3 --slave /usr/bin/javaws javaws /usr/lib/jdk_Oracle/jre/bin/javaws --slave /usr/share/man/man1/javaws.1 javaws.1 /usr/lib/jdk_Oracle/man/man1/javaws.1
Linux x86_64 (64 位架构),openSUSE 版本低于 Leap 15.0

对于 openSUSE 64 位,请改用

sudo /usr/sbin/update-alternatives --install /usr/lib64/browser-plugins/javaplugin.so javaplugin /usr/lib64/jdk_Oracle/jre/lib/amd64/libnpjp2.so 3 --slave /usr/bin/javaws javaws /usr/lib64/jdk_Oracle/jre/bin/javaws --slave /usr/share/man/man1/javaws.1 javaws.1 /usr/lib64/jdk_Oracle/man/man1/javaws.1
Icon-warning.png
警告:自 Leap 15.0 以来,上述命令失败并显示
update-alternatives: 错误: 备选 javaws 不能成为 javaplugin 的从属: 它是 libjavaplugin.so.x86_64 的从属

因此请改用以下命令

Linux x86 (32 位架构),openSUSE 版本自 Leap 15.0 起
sudo /usr/sbin/update-alternatives --install /usr/lib/browser-plugins/libjavaplugin.so libjavaplugin.so /usr/lib/jdk_Oracle/jre/lib/i386/libnpjp2.so 3 --slave /usr/bin/javaws javaws /usr/lib/jdk_Oracle/jre/bin/javaws --slave /usr/share/man/man1/javaws.1 javaws.1 /usr/lib/jdk_Oracle/man/man1/javaws.1
Linux x86_64 (64 位架构),openSUSE 版本自 Leap 15.0 起

对于 openSUSE 64 位,请改用

sudo /usr/sbin/update-alternatives --install /usr/lib64/browser-plugins/libjavaplugin.so libjavaplugin.so.x86_64 /usr/lib64/jdk_Oracle/jre/lib/amd64/libnpjp2.so 3 --slave /usr/bin/javaws javaws /usr/lib64/jdk_Oracle/jre/bin/javaws --slave /usr/share/man/man1/javaws.1 javaws.1 /usr/lib64/jdk_Oracle/man/man1/javaws.1</div

将 Oracle Java 设置为默认

运行后您必须选择相应的数字:(这也可以用于在不同的 Java 实现之间切换)。

Java 应用程序启动器

sudo /usr/sbin/update-alternatives --config java

Java 编译器

sudo /usr/sbin/update-alternatives --config javac

Web 浏览器插件,openSUSE 版本低于 Leap 15.0

sudo /usr/sbin/update-alternatives --config javaplugin

Web 浏览器插件,Linux x86 (32 位架构),openSUSE 版本自 Leap 15.0 起

sudo /usr/sbin/update-alternatives --config libjavaplugin.so

Web 浏览器插件,Linux x86_64 (64 位架构),openSUSE 版本自 Leap 15.0 起

sudo /usr/sbin/update-alternatives --config libjavaplugin.so.x86_64

设置与已安装 Java 版本相关的选项 (可选)

您甚至可以将 Oracle Java 设置为 JDK(和 JRE)环境的替代方案,仅适用于特定版本的 Java,在本例中为 1.7.0;更改将通过通常的update-alternatives.

Java 应用程序启动器

Linux x86 (32 位架构)
sudo /usr/sbin/update-alternatives --install /usr/lib/jvm/jre-1.7.0 jre_1.7.0 /usr/lib/jdk_Oracle/jre 3 --slave /usr/lib/jvm-exports/jre-1.7.0 jre_1.7.0_exports /usr/lib/jvm-exports/jdk_Oracle
Linux x86_64 (64 位架构)
sudo /usr/sbin/update-alternatives --install /usr/lib64/jvm/jre-1.7.0 jre_1.7.0 /usr/lib64/jdk_Oracle/jre 3 --slave /usr/lib64/jvm-exports/jre-1.7.0 jre_1.7.0_exports /usr/lib64/jvm-exports/jdk_Oracle

选择您的替代方案 (所有架构)

sudo /usr/sbin/update-alternatives --config jre_1.7.0

Java 编译器

Linux x86 (32 位架构)
sudo /usr/sbin/update-alternatives --install /usr/lib/jvm/java-1.7.0 java_sdk_1.7.0 /usr/lib/jdk_Oracle 3 --slave /usr/lib/jvm-exports/java-1.7.0 java_sdk_1.7.0_exports /usr/lib/jvm-exports/jdk_Oracle
Linux x86_64 (64 位架构)
sudo /usr/sbin/update-alternatives --install /usr/lib64/jvm/java-1.7.0 java_sdk_1.7.0 /usr/lib64/jdk_Oracle 3 --slave /usr/lib64/jvm-exports/java-1.7.0 java_sdk_1.7.0_exports /usr/lib64/jvm-exports/jdk_Oracle

选择您的替代方案 (所有架构)

sudo /usr/sbin/update-alternatives --config java_sdk_1.7.0

更新 Oracle Java

感谢上面创建的/usr/lib/jdk_Oracle (/usr/lib64/jdk_Oracle(在 x86_64 上)链接,更新 Oracle Java 变得非常容易。

Linux x86 (32 位架构)

1) 重复步骤,直到将 jdk1.X.X_XX 移动到/usr/lib

2) 然后只需更改符号链接/usr/lib/jdk_Oracle指向新的 Java SE
sudo ln -s -f -T /usr/lib/jdk1.X.Y_YY/ /usr/lib/jdk_Oracle
Linux x86_64 (64 位架构)

1) 重复步骤,直到将 jdk1.X.X_XX 移动到/usr/lib64

2) 然后只需更改符号链接/usr/lib64/jdk_Oracle指向新的 Java SE
sudo ln -s -f -T /usr/lib64/jdk1.X.Y_YY/ /usr/lib64/jdk_Oracle

3) 最后,如上所述重新压缩手册文件(所有架构)。

添加 Java 控制面板

一旦您将 Oracle Java 设置为默认 jvm,您可能希望能够直接从您喜欢的桌面环境的应用程序菜单中运行 /usr/lib/jdk_Oracle/bin/jcontrol(如果您正在运行 64 位系统,请替换为liblib64),即提供 Java 控制面板的应用程序。

为了将“Java - Java 控制面板”项目添加到应用程序菜单,您需要创建几个符号链接,如果您想删除 Oracle Java,可以使用 sudo rm /path/to/your/symlink 删除它们。您可以使用以下命令创建这些符号链接,请注意/usr/lib必须替换为/usr/lib64如果您拥有 64 位系统

Linux x86 (32 位架构)
sudo ln -s /usr/lib/jdk_Oracle/jre/bin/jcontrol /usr/bin/
sudo ln -s /usr/lib/jdk_Oracle/jre/lib/desktop/icons/hicolor/16x16/apps/sun-jcontrol.png /usr/share/icons/hicolor/16x16/apps/
sudo ln -s /usr/lib/jdk_Oracle/jre/lib/desktop/icons/hicolor/48x48/apps/sun-jcontrol.png /usr/share/icons/hicolor/48x48/apps/
sudo ln -s /usr/lib/jdk_Oracle/jre/lib/desktop/icons/LowContrast/16x16/apps/sun-jcontrol.png /usr/share/icons/locolor/16x16/apps/
sudo ln -s /usr/lib/jdk_Oracle/jre/lib/desktop/icons/LowContrast/48x48/apps/sun-jcontrol.png /usr/share/icons/locolor/48x48/apps/
sudo ln -s /usr/lib/jdk_Oracle/jre/lib/desktop/applications/sun_java.desktop /usr/share/applications
Linux x86_64 (64 位架构)
sudo ln -s /usr/lib64/jdk_Oracle/jre/bin/jcontrol /usr/bin/
sudo ln -s /usr/lib64/jdk_Oracle/jre/lib/desktop/icons/hicolor/16x16/apps/sun-jcontrol.png /usr/share/icons/hicolor/16x16/apps/
sudo ln -s /usr/lib64/jdk_Oracle/jre/lib/desktop/icons/hicolor/48x48/apps/sun-jcontrol.png /usr/share/icons/hicolor/48x48/apps/
sudo ln -s /usr/lib64/jdk_Oracle/jre/lib/desktop/icons/LowContrast/16x16/apps/sun-jcontrol.png /usr/share/icons/locolor/16x16/apps/
sudo ln -s /usr/lib64/jdk_Oracle/jre/lib/desktop/icons/LowContrast/48x48/apps/sun-jcontrol.png /usr/share/icons/locolor/48x48/apps/
sudo ln -s /usr/lib64/jdk_Oracle/jre/lib/desktop/applications/sun_java.desktop /usr/share/applications

仅含运行时环境的程序 (JRE)

仅适用于 Java 运行时环境。

Icon-warning.png
警告:从本节到本节末尾,对于任何小节(包括更新 Oracle Java (JRE)),如果您的系统是 64 位架构,则任何出现的/usr/lib必须替换为/usr/lib64。插入命令时,请遵循适用于您的系统架构的相应小节。

安装 Oracle Java SE (JRE)

  • Oracle Java 网站下载 Oracle Java SE 运行时环境 (JRE)。将其保存到易于记住的目录(例如/tmp)
下载适合您系统架构的版本。例如:Oracle Java 版本 1.7.0_7
Linux x86 (32 位架构)
jre-7u7-linux-i586.tar.gz
Linux x64 (64 位架构)
jre-7u7-linux-x64.tar.gz
  • 打开终端并运行
    cd /path/to/downloaded/java
  • 使用以下命令解压(作为 root 用户,以确保)
    sudo tar -xzf ./jre-7uX-linux-XX.tar.gz
  • 修复已解压目录及其内容的权限
    sudo chown -R root:root jre1.X.X_XX/
Linux x86 (32 位架构)
  • Open JDK 默认安装在/usr/lib,所以我们也把 Oracle Java 移动到/usr/lib以及
    sudo mv ./jre1.X.X_XX/ /usr/lib/
  • 创建一个指向 /usr/lib/jdk1.X.X_XX/ 的符号链接(这对于将来的更新很重要)
    sudo ln -s -T /usr/lib/jre1.X.X_XX/ /usr/lib/jdk_Oracle
Linux x86_64 (64 位架构)
  • Open JDK 默认安装在/usr/lib64,所以我们也把 Oracle Java 移动到/usr/lib64以及
    sudo mv ./jre1.X.X_XX/ /usr/lib64/
  • 创建一个指向 /usr/lib64/jdk1.X.X_XX/ 的符号链接(这对于将来更新很重要)
    sudo ln -s -T /usr/lib64/jre1.X.X_XX/ /usr/lib64/jdk_Oracle

通知系统 (JRE)

Java 应用程序启动器

  • 压缩您安装中涉及的手册文件
Linux x86 (32 位架构)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/java.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/keytool.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/orbd.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/policytool.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/rmid.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/rmiregistry.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/servertool.1)
sudo gzip $(readlink -f /usr/lib/jdk_Oracle/man/man1/tnameserv.1)
Linux x86_64 (64 位架构)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/java.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/keytool.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/orbd.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/policytool.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/rmid.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/rmiregistry.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/servertool.1)
sudo gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/tnameserv.1)
  • 准备 jvm-exports 的目录 (特定于 1.7.0 版本)
Linux x86 (32 位架构)
  1. sudo mkdir /usr/lib/jvm-exports/jdk_Oracle
    cd /usr/lib/jvm-exports/jdk_Oracle
    sudo ln -s /usr/lib/jdk_Oracle/lib/rt.jar jaas-1.7.0_Orac.jar
    sudo ln -s jaas-1.7.0_Orac.jar jaas-1.7.0.jar
    sudo ln -s jaas-1.7.0_Orac.jar jaas.jar
    sudo ln -s /usr/lib/jdk_Oracle/lib/jce.jar jce-1.7.0_Orac.jar
    sudo ln -s jce-1.7.0_Orac.jar jce-1.7.0.jar
    sudo ln -s jce-1.7.0_Orac.jar jce.jar
    sudo ln -s /usr/lib/jdk_Oracle/lib/rt.jar jdbc-stdext-1.7.0_Orac.jar
    sudo ln -s jdbc-stdext-1.7.0_Orac.jar jdbc-stdext-1.7.0.jar
    sudo ln -s jdbc-stdext-1.7.0_Orac.jar jdbc-stdext-3.0.jar
    sudo ln -s jdbc-stdext-1.7.0_Orac.jar jdbc-stdext.jar
    sudo ln -s /usr/lib/jdk_Oracle/lib/rt.jar jndi-1.7.0_Orac.jar
    sudo ln -s jndi-1.7.0_Orac.jar jndi-1.7.0.jar
    sudo ln -s /usr/lib/jdk_Oracle/lib/rt.jar jndi-cos-1.7.0_Orac.jar
    sudo ln -s jndi-cos-1.7.0_Orac.jar jndi-cos-1.7.0.jar
    sudo ln -s jndi-cos-1.7.0_Orac.jar jndi-cos.jar
    sudo ln -s jndi-1.7.0_Orac.jar jndi.jar
    sudo ln -s /usr/lib/jdk_Oracle/lib/rt.jar jndi-ldap-1.7.0_Orac.jar
    sudo ln -s jndi-ldap-1.7.0_Orac.jar jndi-ldap-1.7.0.jar
    sudo ln -s jndi-ldap-1.7.0_Orac.jar jndi-ldap.jar
    sudo ln -s /usr/lib/jdk_Oracle/lib/rt.jar jndi-rmi-1.7.0_Orac.jar
    sudo ln -s jndi-rmi-1.7.0_Orac.jar jndi-rmi-1.7.0.jar
    sudo ln -s jndi-rmi-1.7.0_Orac.jar jndi-rmi.jar
    sudo ln -s /usr/lib/jdk_Oracle/lib/jsse.jar jsse-1.7.0_Orac.jar
    sudo ln -s jsse-1.7.0_Orac.jar jsse-1.7.0.jar
    sudo ln -s jsse-1.7.0_Orac.jar jsse.jar
    sudo ln -s /usr/lib/jdk_Oracle/lib/rt.jar sasl-1.7.0_Orac.jar
    sudo ln -s sasl-1.7.0_Orac.jar sasl-1.7.0.jar
    sudo ln -s sasl-1.7.0_Orac.jar sasl.jar
  2. sudo /usr/sbin/update-alternatives --install /usr/bin/java java /usr/lib/jdk_Oracle/bin/java 3 --slave /usr/share/man/man1/java.1.gz java.1.gz /usr/lib/jdk_Oracle/man/man1/java.1.gz --slave /usr/lib/jvm/jre jre /usr/lib/jdk_Oracle --slave /usr/lib/jvm-exports/jre jre_exports /usr/lib/jvm-exports/jdk_Oracle --slave /usr/bin/keytool keytool /usr/lib/jdk_Oracle/bin/keytool --slave /usr/share/man/man1/keytool.1.gz keytool.1.gz /usr/lib/jdk_Oracle/man/man1/keytool.1.gz --slave /usr/bin/orbd orbd /usr/lib/jdk_Oracle/bin/orbd --slave /usr/share/man/man1/orbd.1.gz orbd.1.gz /usr/lib/jdk_Oracle/man/man1/orbd.1.gz --slave /usr/bin/policytool policytool /usr/lib/jdk_Oracle/bin/policytool --slave /usr/share/man/man1/policytool.1.gz policytool.1.gz /usr/lib/jdk_Oracle/man/man1/policytool.1.gz --slave /usr/bin/rmid rmid /usr/lib/jdk_Oracle/bin/rmid --slave /usr/share/man/man1/rmid.1.gz rmid.1.gz /usr/lib/jdk_Oracle/man/man1/rmid.1.gz --slave /usr/bin/rmiregistry rmiregistry /usr/lib/jdk_Oracle/bin/rmiregistry --slave /usr/share/man/man1/rmiregistry.1.gz rmiregistry.1.gz /usr/lib/jdk_Oracle/man/man1/rmiregistry.1.gz --slave /usr/bin/servertool servertool /usr/lib/jdk_Oracle/bin/servertool --slave /usr/share/man/man1/servertool.1.gz servertool.1.gz /usr/lib/jdk_Oracle/man/man1/servertool.1.gz --slave /usr/bin/tnameserv tnameserv /usr/lib/jdk_Oracle/bin/tnameserv --slave /usr/share/man/man1/tnameserv.1.gz tnameserv.1.gz /usr/lib/jdk_Oracle/man/man1/tnameserv.1.gz
Linux x86_64 (64 位架构)
  1. sudo mkdir /usr/lib64/jvm-exports/jdk_Oracle
    cd /usr/lib64/jvm-exports/jdk_Oracle
    sudo ln -s /usr/lib64/jdk_Oracle/lib/rt.jar jaas-1.7.0_Orac.jar
    sudo ln -s jaas-1.7.0_Orac.jar jaas-1.7.0.jar
    sudo ln -s jaas-1.7.0_Orac.jar jaas.jar
    sudo ln -s /usr/lib64/jdk_Oracle/lib/jce.jar jce-1.7.0_Orac.jar
    sudo ln -s jce-1.7.0_Orac.jar jce-1.7.0.jar
    sudo ln -s jce-1.7.0_Orac.jar jce.jar
    sudo ln -s /usr/lib64/jdk_Oracle/lib/rt.jar jdbc-stdext-1.7.0_Orac.jar
    sudo ln -s jdbc-stdext-1.7.0_Orac.jar jdbc-stdext-1.7.0.jar
    sudo ln -s jdbc-stdext-1.7.0_Orac.jar jdbc-stdext-3.0.jar
    sudo ln -s jdbc-stdext-1.7.0_Orac.jar jdbc-stdext.jar
    sudo ln -s /usr/lib64/jdk_Oracle/lib/rt.jar jndi-1.7.0_Orac.jar
    sudo ln -s jndi-1.7.0_Orac.jar jndi-1.7.0.jar
    sudo ln -s /usr/lib64/jdk_Oracle/lib/rt.jar jndi-cos-1.7.0_Orac.jar
    sudo ln -s jndi-cos-1.7.0_Orac.jar jndi-cos-1.7.0.jar
    sudo ln -s jndi-cos-1.7.0_Orac.jar jndi-cos.jar
    sudo ln -s jndi-1.7.0_Orac.jar jndi.jar
    sudo ln -s /usr/lib64/jdk_Oracle/lib/rt.jar jndi-ldap-1.7.0_Orac.jar
    sudo ln -s jndi-ldap-1.7.0_Orac.jar jndi-ldap-1.7.0.jar
    sudo ln -s jndi-ldap-1.7.0_Orac.jar jndi-ldap.jar
    sudo ln -s /usr/lib64/jdk_Oracle/lib/rt.jar jndi-rmi-1.7.0_Orac.jar
    sudo ln -s jndi-rmi-1.7.0_Orac.jar jndi-rmi-1.7.0.jar
    sudo ln -s jndi-rmi-1.7.0_Orac.jar jndi-rmi.jar
    sudo ln -s /usr/lib64/jdk_Oracle/lib/jsse.jar jsse-1.7.0_Orac.jar
    sudo ln -s jsse-1.7.0_Orac.jar jsse-1.7.0.jar
    sudo ln -s jsse-1.7.0_Orac.jar jsse.jar
    sudo ln -s /usr/lib64/jdk_Oracle/lib/rt.jar sasl-1.7.0_Orac.jar
    sudo ln -s sasl-1.7.0_Orac.jar sasl-1.7.0.jar
    sudo ln -s sasl-1.7.0_Orac.jar sasl.jar
  2. sudo /usr/sbin/update-alternatives --install /usr/bin/java java /usr/lib64/jdk_Oracle/bin/java 3 --slave /usr/share/man/man1/java.1.gz java.1.gz /usr/lib64/jdk_Oracle/man/man1/java.1.gz --slave /usr/lib64/jvm/jre jre /usr/lib64/jdk_Oracle --slave /usr/lib64/jvm-exports/jre jre_exports /usr/lib64/jvm-exports/jdk_Oracle --slave /usr/bin/keytool keytool /usr/lib64/jdk_Oracle/bin/keytool --slave /usr/share/man/man1/keytool.1.gz keytool.1.gz /usr/lib64/jdk_Oracle/man/man1/keytool.1.gz --slave /usr/bin/orbd orbd /usr/lib64/jdk_Oracle/bin/orbd --slave /usr/share/man/man1/orbd.1.gz orbd.1.gz /usr/lib64/jdk_Oracle/man/man1/orbd.1.gz --slave /usr/bin/policytool policytool /usr/lib64/jdk_Oracle/bin/policytool --slave /usr/share/man/man1/policytool.1.gz policytool.1.gz /usr/lib64/jdk_Oracle/man/man1/policytool.1.gz --slave /usr/bin/rmid rmid /usr/lib64/jdk_Oracle/bin/rmid --slave /usr/share/man/man1/rmid.1.gz rmid.1.gz /usr/lib64/jdk_Oracle/man/man1/rmid.1.gz --slave /usr/bin/rmiregistry rmiregistry /usr/lib64/jdk_Oracle/bin/rmiregistry --slave /usr/share/man/man1/rmiregistry.1.gz rmiregistry.1.gz /usr/lib64/jdk_Oracle/man/man1/rmiregistry.1.gz --slave /usr/bin/servertool servertool /usr/lib64/jdk_Oracle/bin/servertool --slave /usr/share/man/man1/servertool.1.gz servertool.1.gz /usr/lib64/jdk_Oracle/man/man1/servertool.1.gz --slave /usr/bin/tnameserv tnameserv /usr/lib64/jdk_Oracle/bin/tnameserv --slave /usr/share/man/man1/tnameserv.1.gz tnameserv.1.gz /usr/lib64/jdk_Oracle/man/man1/tnameserv.1.gz

Web 浏览器插件

Linux x86 (32 位架构)
sudo /usr/sbin/update-alternatives --install /usr/lib/browser-plugins/javaplugin.so javaplugin /usr/lib/jdk_Oracle/lib/i386/libnpjp2.so 3 --slave /usr/bin/javaws javaws /usr/lib/jdk_Oracle/bin/javaws --slave /usr/share/man/man1/javaws.1 javaws.1 /usr/lib/jdk_Oracle/man/man1/javaws.1
Linux x86_64 (64 位架构)
对于 openSUSE 64 位,请改用
sudo /usr/sbin/update-alternatives --install /usr/lib64/browser-plugins/javaplugin.so javaplugin /usr/lib64/jdk_Oracle/lib/amd64/libnpjp2.so 3 --slave /usr/bin/javaws javaws /usr/lib64/jdk_Oracle/bin/javaws --slave /usr/share/man/man1/javaws.1 javaws.1 /usr/lib64/jdk_Oracle/man/man1/javaws.1
Icon-warning.png
警告:自 Leap 15.0 以来,上述命令失败并显示
update-alternatives: 错误: 备选 javaws 不能成为 javaplugin 的从属: 它是 libjavaplugin.so.x86_64 的从属

因此请改用以下命令

Linux x86 (32 位架构),openSUSE 版本自 Leap 15.0 起
sudo /usr/sbin/update-alternatives --install /usr/lib/browser-plugins/libjavaplugin.so libjavaplugin.so /usr/lib/jdk_Oracle/jre/lib/i386/libnpjp2.so 3 --slave /usr/bin/javaws javaws /usr/lib/jdk_Oracle/jre/bin/javaws --slave /usr/share/man/man1/javaws.1 javaws.1 /usr/lib/jdk_Oracle/man/man1/javaws.1
Linux x86_64 (64 位架构),openSUSE 版本自 Leap 15.0 起
对于 openSUSE 64 位,请改用
sudo /usr/sbin/update-alternatives --install /usr/lib64/browser-plugins/libjavaplugin.so libjavaplugin.so.x86_64 /usr/lib64/jdk_Oracle/jre/lib/amd64/libnpjp2.so 3 --slave /usr/bin/javaws javaws /usr/lib64/jdk_Oracle/jre/bin/javaws --slave /usr/share/man/man1/javaws.1 javaws.1 /usr/lib64/jdk_Oracle/man/man1/javaws.1

将 Oracle Java 设置为默认 (JRE)

运行后您必须选择相应的数字:(这也可以用于在不同的 Java 实现之间切换)。

Java 应用程序启动器

sudo /usr/sbin/update-alternatives --config java

Web 浏览器插件,openSUSE 版本低于 Leap 15.0

sudo /usr/sbin/update-alternatives --config javaplugin

Web 浏览器插件,Linux x86 (32 位架构),openSUSE 版本自 Leap 15.0 起

sudo /usr/sbin/update-alternatives --config libjavaplugin.so

Web 浏览器插件,Linux x86_64 (64 位架构),openSUSE 版本自 Leap 15.0 起

sudo /usr/sbin/update-alternatives --config libjavaplugin.so.x86_64

设置与已安装 Java JRE 版本相关的选项 (可选)

您甚至可以将 Oracle Java 设置为 JRE 环境的替代方案,仅适用于特定版本的 Java,在本例中为 1.7.0;更改将通过通常的update-alternatives.

Java 应用程序启动器

Linux x86 (32 位架构)
sudo /usr/sbin/update-alternatives --install /usr/lib/jvm/jre-1.7.0 jre_1.7.0 /usr/lib/jdk_Oracle 3 --slave /usr/lib/jvm-exports/jre-1.7.0 jre_1.7.0_exports /usr/lib/jvm-exports/jdk_Oracle
Linux x86_64 (64 位架构)
sudo /usr/sbin/update-alternatives --install /usr/lib64/jvm/jre-1.7.0 jre_1.7.0 /usr/lib64/jdk_Oracle 3 --slave /usr/lib64/jvm-exports/jre-1.7.0 jre_1.7.0_exports /usr/lib64/jvm-exports/jdk_Oracle

选择您的替代项(所有架构)

sudo /usr/sbin/update-alternatives --config jre_1.7.0

更新 Oracle Java (JRE)

感谢上面创建的/usr/lib/jdk_Oracle (/usr/lib64/jdk_Oracle(在 x86_64 上)链接,更新 Oracle Java 变得非常容易。

Linux x86 (32 位架构)

1) 重复步骤,直到将 jre1.X.X_XX 移动到/usr/lib

2) 然后只需更改符号链接/usr/lib/jdk_Oracle指向新的 Java SE
sudo ln -s -f -T /usr/lib/jre1.X.Y_YY/ /usr/lib/jdk_Oracle
Linux x86_64 (64 位架构)

1) 重复步骤,直到将 jre1.X.X_XX 移动到/usr/lib64

2) 然后只需更改符号链接/usr/lib64/jdk_Oracle指向新的 Java SE
sudo ln -s -f -T /usr/lib64/jre1.X.Y_YY/ /usr/lib64/jdk_Oracle

3) 最后,如上所述重新压缩手册文件(所有架构)。

添加 Java 控制面板 (JRE)

一旦您将 Oracle Java 设置为默认 jvm,您可能希望能够直接从您喜欢的桌面环境的应用程序菜单中运行 /usr/lib/jdk_Oracle/bin/jcontrol(如果您正在运行 64 位系统,请替换为liblib64如果您正在运行 64 位系统),例如,直接从您喜欢的桌面环境的应用程序菜单中提供 Java 控制面板的应用程序。

为了将“Java - Java 控制面板”项目添加到应用程序菜单,您需要创建几个符号链接,如果您想删除 Oracle Java,可以使用 sudo rm /path/to/your/symlink 删除它们。您可以使用以下命令创建这些符号链接,请注意/usr/lib必须替换为/usr/lib64如果您拥有 64 位系统

Linux x86 (32 位架构)
sudo ln -s /usr/lib/jdk_Oracle/bin/jcontrol /usr/bin/
sudo ln -s /usr/lib/jdk_Oracle/lib/desktop/icons/hicolor/16x16/apps/sun-jcontrol.png /usr/share/icons/hicolor/16x16/apps/
sudo ln -s /usr/lib/jdk_Oracle/lib/desktop/icons/hicolor/48x48/apps/sun-jcontrol.png /usr/share/icons/hicolor/48x48/apps/
sudo ln -s /usr/lib/jdk_Oracle/lib/desktop/icons/LowContrast/16x16/apps/sun-jcontrol.png /usr/share/icons/locolor/16x16/apps/
sudo ln -s /usr/lib/jdk_Oracle/lib/desktop/icons/LowContrast/48x48/apps/sun-jcontrol.png /usr/share/icons/locolor/48x48/apps/
sudo ln -s /usr/lib/jdk_Oracle/lib/desktop/applications/sun_java.desktop /usr/share/applications/
Linux x86_64 (64 位架构)
sudo ln -s /usr/lib64/jdk_Oracle/bin/jcontrol /usr/bin/
sudo ln -s /usr/lib64/jdk_Oracle/lib/desktop/icons/hicolor/16x16/apps/sun-jcontrol.png /usr/share/icons/hicolor/16x16/apps/
sudo ln -s /usr/lib64/jdk_Oracle/lib/desktop/icons/hicolor/48x48/apps/sun-jcontrol.png /usr/share/icons/hicolor/48x48/apps/
sudo ln -s /usr/lib64/jdk_Oracle/lib/desktop/icons/LowContrast/16x16/apps/sun-jcontrol.png /usr/share/icons/locolor/16x16/apps/
sudo ln -s /usr/lib64/jdk_Oracle/lib/desktop/icons/LowContrast/48x48/apps/sun-jcontrol.png /usr/share/icons/locolor/48x48/apps/
sudo ln -s /usr/lib64/jdk_Oracle/lib/desktop/applications/sun_java.desktop /usr/share/applications/

相关文档

man update-alternatives
less /var/lib/rpm/alternatives/java
less /var/lib/rpm/alternatives/javac
less /var/lib/rpm/alternatives/javaplugin

外部链接

其他 Java 相关主题