问题
在实际开发过程中,可能会遇到需要不同jdk版本的情况。
解决
前提条件
1、安装open jdk11
jdk.java.net/java-se-ri/… 下载并解压,需要注意: jdk11解压后默认是没有jre的,需要在解压后的根路径下,执行以下命令:
bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre
2、安装jdk8
在oracle官网,登录后,下载jdk8的windows64位安装程序,需要注意: 安装程序安装的jdk8,会默认生成以下内容: 2.1、安装程序会自动将java.exe、javaw.exe、javaws.exe三个可执行文件复制到C:\Windows\System32目录,这个目录在WINDOWS环境变量中的优先级高于JAVA_HOME设置的环境变量优先级,故此直接更改JAVA_HOME会无效; 2.2、安装程序会在C:\ProgramData\Oracle\Java目录中生成一些配置文件,并同时将此目录写到环境变量中的Path中。 因此,需要删除C:\Windows\System32目录下的java.exe、javaw.exe、javaws.exe三个文件; 删除环境变量Path中C:\ProgramData\Oracle\Java\javapath的配置。
3、一键切换脚本
:分别设置jdk8和jdk11的根路径
SET JDK8_PATH=D:\InstallTo\Java\jdk1.8.0_241
SET JDK11_PATH=D:\InstallTo\Java\jdk-11
IF "%JAVA_HOME%"=="%JDK8_PATH%" (
setx /M JAVA_HOME "%JDK11_PATH%"
ECHO "set JAVA_HOME to finish- >%JDK11_PATH%"
) ELSE (
setx /M JAVA_HOME "%JDK8_PATH%"
ECHO "set JAVA_HOME to finish - > %JDK8_PATH%"
)
pause