一般我们在开发中使用JDK7版本进行开发,但是空闲时间我们又想使用JDK8进行学习。把jdk7和jdk8都安装上,可是都安装上jdk7就不能使用了,修改环境变量还是JDK8。解决方法看下面步骤:(并且我写了一个一键切换脚本)。
工具/原料
-
JDK7安装包、JDK8安装包
方法/步骤
-
具体怎么安装就不说了。直接配置环境变量:
CLASSPATH值为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
在PATH其他值后面添加:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
-
找到安装的jdk路径,配置JDK安装路径(JAVA_HOME)
-
JAVA7_HOME为JDK7的安装路径,JAVA8_HOME为JDK8的安装路径;JAVA_HOME的值是变量,因为你要切换jdk7和jdk8,所以使用JDK7时值为:%JAVA7_HOME%;使用JDK8时值为:%JAVA8_HOME%。当你切换7或8时,只改变JAVA_HOME的值就行了。
-
注意:当我安装上JDK8时,把JAVA_HOME改为%JAVA7_HOME%,通过java -version发现还是JDK8。这是因为:
在安装jdk8的时候,安装过程中会在系统变量Path的最前面加上了C:\ProgramData\Oracle\Java\javapath;现在,打开环境变量PATH,删除PATH值中的 C:\ProgramData\Oracle\Java\javapath;删除之后就可以了。
脚参考
- 运行脚本效果如图:可以一键切换JDK版本。
-
脚本代码:(保存成.bat文件直接运行就可以了。)代码如下:
@echo off title 修改JDK mode con cols=35 lines=20 color 3f cd /d "%~dp0" cacls.exe "%SystemDrive%\System Volume Information" >nul 2>nul if %errorlevel%==0 goto Admin if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs" echo Set RequestUAC = CreateObject^("Shell.Application"^)>"%temp%\getadmin.vbs" echo RequestUAC.ShellExecute "%~s0","","","runas",1 >>"%temp%\getadmin.vbs" echo WScript.Quit >>"%temp%\getadmin.vbs" "%temp%\getadmin.vbs" /f if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs" exit :Admin rem 环境变量:setx /M java_home "%JAVA7_HOME%" @setlocal enableextensions enabledelayedexpansion set str1="%java_home%" if not x%str1:7=%==x%str1% ( echo ********************** echo * * echo * 当前JDK版本是1.7 * echo * * echo ********************** setx /M java_home "%JAVA8_HOME%" >nul 2>nul if %errorlevel%==0 goto jdk8 ) else if not x%str1:8=%==x%str1% ( echo ********************** echo * * echo * 当前JDK版本是1.8 * echo * * echo ********************** setx /M java_home "%JAVA7_HOME%" >nul 2>nul if %errorlevel%==0 goto jdk7 ) endlocal :jdk8 echo 设置JDK1.8版本成功! goto end :jdk7 echo 设置JDK1.7版本成功! goto end :end pause