三个环境变量JAVA_HOME、CLASSPATH、PATH的区别

本文介绍了JAVA_HOME、CLASSPATH、PATH这三个环境变量的区别和作用。在遇到因JDK版本不匹配导致的问题时,通过设置JAVA_HOME环境变量解决了问题。JAVA_HOME指JDK安装路径,CLASSPATH定义类加载路径,PATH则用于简化命令执行。在Windows环境中,可以通过set命令临时修改这些变量值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

写一个脚本执行自动从gitlab拉取代码,并使用mvn 命令编译,出现以下问题:
Detected JDK Version: 1.6.0-14 is not in the allowed range 1.8.
因为项目使用的jdk1.8版本,但是电脑的系统变量使用的java 版本是1.6版本,所以出现了如上的问题。
但是cmd中执行java -version 命令,发现问题 java version 是1.8

这里写图片描述

出现1.6,是因为mvn 执行的时候,以系统变量为主。还把maven的安装包放在了个人用户的目录下。但是并没有解决问题。也想过用set 命令来修改,但是被耽搁。 也修改过maven的pom文件和setting文件,但都不生效。

还有一种是修改setting.xml
修改profiles这个属性,就可以得到。
<profiles></profiles>


<properties>
    <!-- 字符集编码 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!-- jdk版本规定 -->
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <java.version>1.8</java.version>
</properties>


<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
</plugin>

==== 上面两种修改方式的适用场景是?

其实最主要是对JAVA_HOME、CLASSPATH、PATH不了解。

JAVA_HOME

解决办法:

指向的是JDK的安装路径,如C:\Program Files\Java\jdk1.8.0_73 在这路径下你应该能够找到bin、lib等目录。
由于自己电脑的个人用户环境变量没有设置JAVA_HOME,直接把 C:\Program Files\Java\jdk1.8.0_73\bin
C:\Program Files\Java\jdk1.8.0_73\jre\bin 两个路径放在了 PTAH中。 所以使用 java -version 命令得到 1.8的版本。 但是mvn 命令是根据 JAVA_HOME 路径来获取java 版本,所以从系统变量中得到了1.6的版本,爆出上面错误。

解决的办法也就是在个人用户的环境变量中配置,JAVA_HOME = C:\Program Files\Java\jdk1.8.0_73 这样问题就解决了。mvn -v 后,得到1.8版本。

所以新电脑配置环境变量的时候,JAVA_HOME 一定不能少。

CLASSPATH

CLASSPATH 环境变量,指的是类路径。在类加载的时候,需要使用到一般情况下的路径就是如此。不过这个类是加载扩展类或者第三方类。
CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

PATH

这个环境变量windows里面就有,很多时候都是往里面添加bin目录。比方说,jdk的bin、git的bin、maven的bin都是可以的。这样在控制台下面编译和执行程序的时候就不需要再键入一大串路径了。添加方法直接在后面加,但很多时候会新建一个相应的路径,再加上bin路径。比方说添加maven的bin,那么会先创建新的MAVEN_HOME ,然后再PATH中添加 %MAVEN_HOME%bin, 这样就可以了。

set 命令修环境变量值

在脚本中,如果某个应用需要临时修改上面三个变量的值,可以使用set命令。 但只在脚本运行的生命周期有效。
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_73
set PATH=%JAVA_HOME%\bin;
set CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值