java - 在 ubuntu 中解析不同的 java 和 javac 版本

标签 java ubuntu

我的 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/

相关文章:

node.js - NodeJS/MongoDB - 避免 mongoose 节省错误的当前时间

java - 无论应用程序如何启动,都查找 conf 文件

java - 单击以编程方式创建的编辑文本时打开日期选择器对话框吗?

Java 签名字节数组与 .Net 字节数组的兼容性

java - 将 URL 作为输入源的帮助

python - datetime.datetime.strptime() 使用可变输入长度

java - 为什么在 Java 中将 Integer 赋给 int 时编译器不报错

python - 类型错误 : load_dotenv() got an unexpected keyword argument 'encoding'

ruby-on-rails-3 - 如何使用 RVM(linux 和 gedit)在 Rails3 中浏览 gem 的源代码

php - 在 Linux 上的 Lighttpd 上运行 Rails 和 PHP