转载至 https://zhuanlan.zhihu.com/p/442291304
1、下载
1.1、jdk下载地址
OpenJDK下载地址:http://jdk.java.net/
OracleJDK下载地址:https://www.oracle.com/java/technologies/downloads/
1.2、maven下载地址:
maven各版本下载地址:https://archive.apache.org/dist/maven/maven-3/
2、配置环境变量
2.1、安装
分别安装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
2.2、删除 C:\Windows\System32 下三个文件
在第一次安装jdk时,自动将java.exe、javaw.exe、javaws.exe三个可执行文件复制到了C:\Windows\System32目录,由于这个目录在Windows环境变量中的优先级高于JAVA_HOME设置的环境变量优先级。所以将C:\Windows\System32目录下的java.exe、javaw.exe、javaws.exe三个可执行文件 删除即可。
2.3、删除系统环境变量中安装jdk产生的javapath
在安装jdk的时候,安装过程中会在系统变量Path的最前面加上了C:\ProgramData\Oracle\Java\javapath;,这是安装jdk的时候带出来的,并且在Path的最前面,所以无论修改注册表还是Java控制台都没有用,执行的指令在系统变量中搜寻命令时最先找到的就是C:\ProgramData\Oracle\Java\javapath;
2.4、配置默认的环境变量
设置JAVA_HOME的作用
- 方便引用,比如,你JDK安装在D:\java\java8\jdk1.8.0_181目录里,则设置JAVA_HOME为该目录路径, 那么以后你要使用这个路径的时候, 只需输入%JAVA_HOME%即可,避免每次引用都输入很长的路径串。
- 归一原则, 当你JDK路径被迫改变的时候, 你仅需更改JAVA_HOME的变量值即可, 否则,你就要更改任何用绝对路径引用JDK目录的文档, 要是万一你没有改全, 某个程序找不到JDK, 可能会导致系统崩溃。
- 第三方软件会引用JAVA_HOME变量。
JAVA_HOME
D:\java\java8\jdk1.8.0_181
2.5、配置CLASSPATH
CLASSPATH
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
2.6、配置PATH
【path路径加在最前面!!!】
设置PATH的作用:
当把%JAVA_HOME%\bin添加到PATH路径下, 这样, 我们在任何路径下就可以仅用java来执行命令,当在命令提示符窗口输入你个代码时,操作系统会在当前目录和PATH变量目录里查找相应的应用程序,并且执行。
PATH
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
2.7、配置maven环境变量
# 配置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;
3、bat脚本
3.1、编写脚本
@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
3.2、生成CJavaBat.bat快捷方式
右击CJavaBat.bat文件,发送到->桌面快捷方式,重命名为*CJavaBat*
3.3、给予***CJavaBat***文件管理员权限
右击CJavaBat文件,点击属性,点击快捷方式,点击高级,勾选用管理员身份运行,保存关闭。
3.4、运行脚本
双击CJavaBat文件,输入17,关闭窗口。使用win+X & ctrl +A 打开PowerShell,打开命令提示符,输入*java -version*和mvn -v查看切换结果
4、取消自动更新
注意
1. java -version无效
jdk11之后没有jre目录,而变量执行java -version
无效。需要进入jdk目录下执行此命令
bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre
2.切换jdk后,java -version
无效
修改环境变量时,在path
内,%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
需要在system32
之前