【问题标题】:Unable to change the JAVA path to the Oracle JDK无法更改 Oracle JDK 的 JAVA 路径
【发布时间】:2020-05-26 21:25:54
【问题描述】:

我使用的是安装了默认 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。

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

我该如何解决?

【问题讨论】:

  • 在你运行java -version之前,你能告诉我们echo $JAVA_HOMEecho $PATH的输出吗?
  • $ echo $JAVA_HOME /u01/app/java/jdk1.8.0_241 $ echo $PATH /home/wcadmin/.local/bin:/home/wcadmin/bin:/u01/app/java /jdk1.8.0_241/bin/java:/home/wcadmin/.local/bin:/home/wcadmin/bin:/usr/share/Modules/bin:/usr/local/bin:/usr/local/sbin: /usr/bin:/usr/sbin

标签: java rhel


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    发生这种情况是因为当您调用 java 时,它实际上被调用 /usr/bin/java,发出 ls -l /usr/bin/java 您可能会看到链接到 openjdk 安装(可能通过双链接:第一个是 /usr/bin/java 到 @ 987654325@ 和第二个是“真正的”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 here 替代品的信息(页中...“更长的版本”)。

    很好的链接

    【讨论】:

    • 提问者调整了他们的$PATH,所以他们的java安装首先出现。那应该让java 使用他们的自定义java 而不是/usr/bin/java 的那个。
    猜你喜欢
    • 2014-08-14
    • 2014-02-02
    • 2017-02-18
    • 2017-08-15
    • 2021-07-02
    • 1970-01-01
    • 2021-08-08
    • 2015-09-11
    • 2016-01-13
    相关资源
    最近更新 更多