繁体   English   中英

无法将 JAVA 路径更改为 Oracle JDK

[英]Unable to change the JAVA path to the Oracle JDK

我正在使用安装了默认 OpenJDK 的 RHEL8。 其中 java 命令指向 /usr/bin/java。 java -version 给出 openjdk 版本“1.8.0_252”

在 /u01/app/java/ 位置安装 java。 修改了.bashrc,如下所示并获取了它。 导出 JAVA_HOME=/u01/app/java/jdk1.8.0_241/ PATH="$JAVA_HOME/bin/java:$HOME/.local/bin:$HOME/bin:$PATH" 导出路径

现在 JAVA_HOME 指向 /u01/app/java/jdk1.8.0_241/ 但是 java 或 java -version 仍然指向 OpenJDK。

  • 添加了相同的 in.bash_profile 文件并将其从 .bashrc 中删除:结果相同
  • 删除了 OpenJDK 并在 .bash_profile 中进行了更改。 但是这样做会导致“找不到命令”错误。

我该如何解决?

这是路径问题。 我已经为 PATH 提供了 PATH="$JAVA_HOME/bin/java:$HOME/.local/bin:$HOME/bin:$PATH" 。 不应该是这样。 将我的 PATH 修改为以下。 有效。

PATH="$JAVA_HOME/bin:$HOME/.local/bin:$HOME/bin:$PATH" 导出路径

发生这种情况是因为当您调用 java 它实际上被调用/usr/bin/java ,发出ls -l /usr/bin/java您可能会看到链接到 openjdk 安装(可能通过双链接:第一个是/usr/bin/java/etc/alternatives/java和第二个是链接到“真正的” java 可执行文件)。 例如,在我的 debian 上:

gianluca@asus-debian:~$ ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 mag 20  2018 /usr/bin/java -> /etc/alternatives/java
gianluca@asus-debian:~$ ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 43 nov 22  2019 /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-amd64/bin/java

您可以通过两种方式修复:

  • 肮脏的方式,您手动更新 /usr/bin 中导致不需要的 java 版本的所有符号链接,并使它们指向所需的
  • 干净的方式,您使用为您完成工作的替代品。

您可以在此处阅读有关 RHEL 替代方案的更多信息(中页...“更长的版本”)。

很好的链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM