欢迎来到之路教程(on itroad-com)

方案一:修改PATH

修改 PATH 环境变量,以便在找到任何其他 JRE 之前可以找到新的 Oracle JRE/JDK。

例如:

$ export PATH=/usr/java/jdk1.7.0_06/bin:$PATH
$ java -version
java version "1.7.0_06"
Java(TM) SE Runtime Environment (build 1.7.0_06-b24)
Java HotSpot(TM) 64-Bit Server VM (build 23.2-b09, mixed mode)

解决方案 2:使用绝对路径

使用新安装的 Oracle JRE/JDK 的完整绝对路径来运行 Java 应用程序。

例如:

$ /usr/java/jdk1.7.0_06/bin/java -version
java version "1.7.0_06"
Java(TM) SE Runtime Environment (build 1.7.0_06-b24)
Java HotSpot(TM) 64-Bit Server VM (build 23.2-b09, mixed mode)

解决方案 3:使用更新替代方案

使用名为 update-alternatives 的命令来告诉 Linux 在哪里可以找到我们刚刚安装的 Oracle JRE/JDK。

注意:手动修复 /usr/bin/java 或者 /etc/alternatives/java 等符号链接会导致 update-alternatives 命令显示不正确的值甚至无法启动。
因此,建议使用 update-alternatives 命令来安装和配置所需的符号链接,而不是手动修改符号链接。

在 RedHat 上使用“su”,在 Ubuntu 上使用“sudo”:

$ su 
# update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk1.7.0_06/bin/java" 1
# update-alternatives --config java
There are 3 programs which provide 'java'.
  Selection    Command
----------------------------------------------
   1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
*+ 2           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   3           /usr/java/jdk1.7.0_06/bin/java
Enter to keep the current selection[+], or type selection number: 3
# exit
$ java -version
java version "1.7.0_06"
Java(TM) SE Runtime Environment (build 1.7.0_06-b24)
Java HotSpot(TM) 64-Bit Server VM (build 23.2-b09, mixed mode)

有关更多信息,请参阅 update-alternatives 的手册页。

$ man update-alternatives

问题

已根据安装说明在 Linux 机器上安装了 Oracle 的 JDK/JRE。
“java”命令不会运行已安装的 JVM。
如果发现意外的 Java 运行时环境,Java 应用程序可能无法运行。

来自 Red Hat 服务器的示例:

$ java -version
java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.4) (rhel-1.21.b17.el6-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)

免责声明:本文中使用的目录和路径代表构成示例的虚构示例名称。
与实际代码的任何相似之处纯属巧合,无意以任何其他方式。

解决方案

已根据安装说明安装了来自 Oracle 的新 JDK/JRE。
来自 Red Hat 服务器的示例:

# rpm -ivh jdk-7u6-linux-x64.rpm

命令“java”通常是 /usr/bin 中的符号链接,它指向(直接或者间接)实际的 Java 可执行文件。
通常 /usr/bin 是环境变量 PATH 中的第一个条目,因此 /usr/bin/java 通常是启动 Java 时最先找到的条目。

对于以下可能的解决方案,假设我们已将 JDK 安装在 /usr/java/jdk1.7.0_06/ 中。

“java”命令不运行已安装的JVM。
日期:2020-09-17 00:14:01 来源:oir作者:oir