我安装了 Java 8 和 17,并且我正在尝试将 Maven 与 Java 8 一起使用来运行
mvn clean package
。
但是,每当我运行
java -version
时,无论是在 PowerShell 上还是在我的 IntelliJ 终端上(项目结构设置为 JDK 8),它总是输出
java 版本“17.0.9”2023-10-17 LTS
Java(TM) SE 运行时环境(版本 17.0.9+11-LTS-201)
Java HotSpot(TM) 64 位服务器 VM(内部版本 17.0.9+11-LTS-201,混合模式,共享)
我更改了
JAVA_HOME
和 PATH
(在环境变量面板中和暂时在 PowerShell 上),并且 Java 版本保持不变,但我确实在 mvn -version
上得到了以下行
Java 版本:1.8.0_202,供应商:Oracle Corporation,运行时:C:\Program Files\Java\jdk1.8.0_202\jre
我尝试卸载 Java 17,所以只剩下 Java 8,这只会破坏
java -version
;它根本停止输出任何内容。
无论如何,Java 17 都会在
-version
命令上覆盖 Java 8 吗?
好的,检查环境变量和系统变量中您想要指向的jdk的路径,如果您愿意,它应该是第一个,后面一个最后一个,就像jdk 8一样,而不是它应该是第一个,然后是jdk 17。确保卸载最近安装的jdk。在我的例子中,我需要jdk 11,之前我安装了jdk 17,所以我必须卸载jdk 17,然后它开始指向jdk 11 ->
第 1 步 - 订购并安装订单中的版本。 检查图像的结果如何改变
有两种选择
如果没有定义JAVA_HOME,Maven使用系统java
如果定义了 JAVA_HOME,Maven 使用定义的 Java
示例
> java --version
openjdk 21 2023-09-19
> mvn -v
Java version: 21
> JAVA_HOME=/usr/lib/jvm/zulu17 mvn -v
Java version: 17.0.8.1
您必须更改 PATH 上的顺序。 Java 17 必须在 Java 8 之前。