转载至 https://zhuanlan.zhihu.com/p/442291304
OpenJDK下载地址:http://jdk.java.net/
OracleJDK下载地址:https://www.oracle.com/java/technologies/downloads/
maven各版本下载地址:https://archive.apache.org/dist/maven/maven-3/
分别安装java6、java7、java8、jdk11、jdk17本地路径如下:
# java6
D:\java\java6\jdk1.6.0_45
D:\java\java6\jre6
# java7
D:\java\java7\jdk1.7.0_80
D:\java\java7\jre7
# java8
D:\java\java8\jdk1.8.0_181
D:\java\java8\jre1.8.0_181
# jdk11
D:\java\java11\jdk-11.0.10.9-hotspot
# jdk17
D:\java\java17\jdk-17
maven解压缩路径:
# maven
D:\maven\apache-maven-3.6.3
在第一次安装jdk时,自动将java.exe、javaw.exe、javaws.exe三个可执行文件复制到了C:\Windows\System32目录,由于这个目录在Windows环境变量中的优先级高于JAVA_HOME设置的环境变量优先级。所以将C:\Windows\System32目录下的java.exe、javaw.exe、javaws.exe三个可执行文件 删除即可。
在安装jdk的时候,安装过程中会在系统变量Path的最前面加上了C:\ProgramData\Oracle\Java\javapath;,这是安装jdk的时候带出来的,并且在Path的最前面,所以无论修改注册表还是Java控制台都没有用,执行的指令在系统变量中搜寻命令时最先找到的就是C:\ProgramData\Oracle\Java\javapath;
设置JAVA_HOME的作用
JAVA_HOME
D:\java\java8\jdk1.8.0_181
CLASSPATH
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
【path路径加在最前面!!!】
设置PATH的作用:
当把%JAVA_HOME%\bin添加到PATH路径下, 这样, 我们在任何路径下就可以仅用java来执行命令,当在命令提示符窗口输入你个代码时,操作系统会在当前目录和PATH变量目录里查找相应的应用程序,并且执行。
PATH
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
# 配置maven
M2_HOME
D:\maven\apache-maven-3.6.3
MAVEN_HOME
D:\maven\apache-maven-3.6.3
# 配置PATH
PATH
%M2_HOME%\bin;
%MAVEN_HOME%\bin;
@echo off
@echo ------------------------------------------------
@echo enter the version you want to change:
@echo options version
@echo 6 JDK6
@echo 7 JDK7
@echo 8 JDK8
@echo 11 JDK11
@echo 17 JDK17
@echo ------------------------------------------------
set /P choose=please enter your choice:
IF "%choose%" EQU "6" (
setx "JAVA_HOME" "D:\java\java6\jdk1.6.0_45" /m
echo "JAVA_HOME" has been modified D:\java\java6\jdk1.6.0_45
) ELSE IF "%choose%" EQU "7" (
setx "JAVA_HOME" "D:\java\java7\jdk1.7.0_80" /m
echo "JAVA_HOME" has been modified D:\java\java7\jdk1.7.0_80
) ELSE IF "%choose%" EQU "8" (
setx "JAVA_HOME" "D:\java\java8\jdk1.8.0_181" /m
echo "JAVA_HOME" has been modified D:\java\java8\jdk1.8.0_181
) ELSE IF "%choose%" EQU "11" (
setx "JAVA_HOME" "D:\java\java11\jdk-11.0.10.9-hotspot" /m
echo "JAVA_HOME" has been modified D:\java\java11\jdk-11.0.10.9-hotspot
) ELSE IF "%choose%" EQU "17" (
setx "JAVA_HOME" "D:\java\java17\jdk-17" /m
echo "JAVA_HOME" has been modified D:\java\java17\jdk-17
)
pause
右击CJavaBat.bat文件,发送到->桌面快捷方式,重命名为*CJavaBat*
右击CJavaBat文件,点击属性,点击快捷方式,点击高级,勾选用管理员身份运行,保存关闭。
双击CJavaBat文件,输入17,关闭窗口。使用win+X & ctrl +A 打开PowerShell,打开命令提示符,输入*java -version*和mvn -v查看切换结果
jdk11之后没有jre目录,而变量执行java -version
无效。需要进入jdk目录下执行此命令
bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre
java -version
无效修改环境变量时,在path
内,%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
需要在system32
之前