我的 java --version
给出:
openjdk 11.0.13 2021-10-19
OpenJDK Runtime Environment (build 11.0.13+8-Ubuntu-0ubuntu1.21.10)
OpenJDK 64-Bit Server VM (build 11.0.13+8-Ubuntu-0ubuntu1.21.10, mixed mode, sharing)
但是当我这样做时:javac --version
我得到:javac 17
whereis java给出:java: /usr/bin/java /usr/share/java /opt/jdk-17/bin/java /usr/share/man/man1/java.1.gz
据我所知,我从官方网站下载了 openjdk 17 并遵循了官方文档。我通常使用 Maven 项目,我只是注意到了这个问题。到目前为止还没有造成任何问题。但我想解决它。是否可以在不删除 java 并重新安装的情况下这样做?
更新:
echo $PATH
/home/arnob/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/opt/jdk-17/bin:/home/arnob/sdks/flutter/bin:/opt/maven/bin:/home/arnob/.local/bin:/home/arnob/.pub-cache/bin:/usr/lib/postgres/13/bin
和ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 Dec 19 00:58 /usr/bin/java -> /etc/alternatives/java
最佳答案
例如,在您的 bashrc 中,您似乎正在添加 /opt/jdk-17/bin
到 PATH,但最后,不在 /usr/bin/
之前,并且您已经单独安装了 Java 11 JRE,所以它首先被拾取
你应该通过扭转它来解决这个问题
export JAVA_HOME=/opt/jdk-17
export PATH="${JAVA_HOME}/bin:$PATH"
我建议对flutter、maven、Postgres等做同样的事情
关于java - 在 ubuntu 中解析不同的 java 和 javac 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70778754/