java -version 在用户和 root 终端中不同

java -version 在用户和 root 终端中不同

我尝试安装 Oracle SQL Developer。但我的 ubuntu 安装了 IBM ACE 11 Developer Edition,这使我无法使用 IBM/java 路径来运行 Oracle SQL Developer。因此我下载并安装了 JAVA SE 8,并通过 sudo update-alternatives -set java 设置为使用新的 Java JDK

目前在我的用户终端上我甚至已经设置为使用新的 Java JDK:

java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 8.0.6.20 - pxa6480sr6fp20ifix-20210224_01(SR6 FP20+IJ30974))
IBM J9 VM (build 2.9, JRE 1.8.0 Linux amd64-64-Bit Compressed References 20210223_466229 (JIT enabled, AOT enabled)
OpenJ9   - 5b31a42
OMR      - 4eb8f5f
IBM      - b7e48f4)
JCL - 20201119_01 based on Oracle jdk8u271-b0

$ which java
  /opt/IBM/ace-11.0.0.12/common/jdk/jre/bin/java

我想问一下是什么设置导致我的用户终端 java -version 仍然是通过安装 ACE 11 安装的 java?是不是 IBM ACE 11 的一些设置导致 java -version 与 root 终端不同,即使我运行了 update-alternatives -set java?并且导致我的 sqldeveloper 无法在我的用户帐户上启动?

就像在我的根终端中输入 java -version 时一样:

java version "1.8.0_291"
Java(TM) SE Runtime Environment (build 1.8.0_291-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)

# which java
 /usr/lib/jvm/jdk1.8.0_291/bin/java


In the /etc/alternatives:
lrwxrwxrwx   1 root root    34  June  4 15:52 java -> /usr/lib/jvm/jdk1.8.0_29/bin/java*

我将用户和根 .bashrc 和 .profile 中的 JAVA_HOME 设置为 /usr/lib/jvm/jdk1.8.0_29/bin/java

答案1

我猜测这是由于设置不正确造成的,因此首先在 java 中搜索,而不是在 standard 中$PATH搜索。/opt/IBM/ace-11.0.0.12/common/jdk/jre/bin//usr/bin/java

您可以检查您的路径回显

echo $PATH

并比较 root / 非 root 终端的输出。然后您需要检查在哪里添加了其他条目(常见的嫌疑人是/etc/profile、、和)~/.bash_profile~/.bashrc~/.bash_login~/.profile

答案2

用户终端甚至我已经设置为使用新的Java JDK:

java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 8.0.6.20 - pxa6480sr6fp20ifix-20210224_01(SR6 FP20+IJ30974))
IBM J9 VM (build 2.9, JRE 1.8.0 Linux amd64-64-Bit Compressed References 20210223_466229 (JIT enabled, AOT enabled)
OpenJ9   - 5b31a42
OMR      - 4eb8f5f
IBM      - b7e48f4)
JCL - 20201119_01 based on Oracle jdk8u271-b0

$ which java
  /opt/IBM/ace-11.0.0.12/common/jdk/jre/bin/java

相关内容