三个环境变量JAVA_HOME、CLASSPATH、PATH的区别
2018-02-01 17:21
543 查看
背景
写一个脚本执行自动从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文件,但都不生效。
==== 上面两种修改方式的适用场景是?
解决办法:
指向的是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
写一个脚本执行自动从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
相关文章推荐
- JAVA中常用需要设置的三个环境变量(JAVA_HOME、CLASSPATH、PATH)
- 2、classpath、path、JAVA_HOME的作用
- 【Java项目实战】配置环境变量:classpath,path,java_home
- Java基础——path, classpath, JAVA_HOME, JRE, JDK等基本原理
- Java环境配置与设置JAVA_HOME,CLASSPATH,PATH的目的
- 转载 Windows下 JAVA_HOME PATH CLASSPATH 三个变量的配置
- classpath、path、JAVA_HOME的作用及JAVA环境变量配置
- Java中设置classpath、path、JAVA_HOME的作用
- JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解
- Java环境变量配置中有关JAVA_HOME,path,Classpath含义的讲解
- 环境变量中的path、classpath、Java_home
- classpath , path , java_home的作用
- 安装JDK后要配置环境变量,主要有三个: 1 JAVA_HOME ->为JDK的安装目录,如:F:\JAVA\jdk1.6.0_04 2 CLASSPATH ->到哪里找需要执行的.class文件,如
- JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解
- java环境变量JAVA_HOME、CLASSPATH、PATH设置详解
- Java中设置classpath、path、JAVA_HOME的作用
- 为什么要设置JAVA_HOME、Path、CLASSPATH、CATALINA_HOME
- JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解
- path,classpath,java_home。
- 浅析JAVA_HOME,CLASSPATH和PATH的作用