同时安装了Java 8和17,java -version总是输出17吗?

问题描述 投票:0回答:4

我安装了 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 吗?

java maven
4个回答
0
投票

好的,检查环境变量和系统变量中您想要指向的jdk的路径,如果您愿意,它应该是第一个,后面一个最后一个,就像jdk 8一样,而不是它应该是第一个,然后是jdk 17。确保卸载最近安装的jdk。在我的例子中,我需要jdk 11,之前我安装了jdk 17,所以我必须卸载jdk 17,然后它开始指向jdk 11 ->

第 1 步 - 订购并安装订单中的版本。 检查图像的结果如何改变


0
投票

有两种选择

  1. 通过修改 PATH 环境变量上的顺序来更改 Java 版本
  2. 使用 Maven 特定的 JAVA_HOME 环境变量

如果没有定义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

0
投票

我面临着同样的问题,这就是我所做的,这对我来说效果很好我已经安装了java版本8和17 在系统变量中我添加了一个变量 JAVA_HOME 值指向我想使用的 java 让我们说像这样的 java 8 enter image description here 在路径中,我删除了所有旧的 java bin 路径,并添加了具有值的新路径

%JAVA_HOME% 位于

像这样 enter image description here

但请确保将其作为路径中的第一个条目 另外,当您想更改 java 版本时,您只需要更改 JAVA_HOME 变量的路径 我还可以建议您创建可执行的bat文件来更改JAVA_HOME 如果你经常这样做的话


-1
投票

您必须更改 PATH 上的顺序。 Java 17 必须在 Java 8 之前。

© www.soinside.com 2019 - 2024. All rights reserved.