* 背景 |
发布项目的时候会遇到一个问题,尤其是我们接触到不同项目的时候,因为jdk版本的缘故,导致发布不成功。小编之前使用的便是JDK8,近期发布的一个项目时JDK7,因为之前已经装过JDK8了,导致自己切换的时候一直没有成功,当时也由于时间比较紧急,于是很粗鲁的将jdk8给卸载了。
其实不同版本的JDK之间肯定是可以兼容,日后自己也尝试了他们之间的切换方式,当然不只是修改环境变量那样的简单哦~
* to JDK7 |
我们先查看一下jdk的版本:
C:\Users\Viola>java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
切换成JDK7:
1.安装
2.修改环境变量
修改JAVA_HOME的路径为JDK7的安装目录(如果是第一次安装JDK时,需要配置path,添加:%JAVA_HOME%/lib/toos.jsr;%JAVA_HOME%/lib/dt.jar)
这时,如果我们在dos中查看java版本时,你会发现依然是jdk8,我们应该是遗漏了是吗,我们会发现,在安装jdk8时,会在环境变量中的系统变量中的path中增加一个路径C:\ProgramData\Oracle\Java\javapath,进去看我们会发现有3个java相关的exe,默认读取jdk8的内容,我们将该path删除。
3.删除系统变量path中的JDK8默认文件
将path中的C:\ProgramData\Oracle\Java\javapath删除,到这里你会发现版本依然是jdk8,这是因为C:\ProgramData\Oracle\Java\javapath中的java文件指向的是C:\Windows\System32中对应的3个文件,虽然我们删除了,但是依然先访问系统文件。
4. jdk7java文件替换system32
用jdk7中的3个java文件替换system32中的3个文件,如下
我们继续查看jdk的版本:
C:\Users\Viola>java -version
Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'
has value '1.8', but '1.7' is required.
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.
5. 修改注册表
上面的提示信息也很明显,进入HKEY_LOCAL_MACHINE,修改Software\JavaSoft\Java Runtime Environment’\CurrentVersion’为1.7
现在我们查看jdk的版本,便已经改过来
* to JDK8 |
刚刚我们成功的从JDK8切换到了7,接下来我们接着讨论如何切换回到8。
切换成JDK8:
1. 修改环境变量Java_Home
2. path中添加默认路径
将C:\ProgramData\Oracle\Java\javapath添加在系统变量path中。
3. 修改注册表
修改Software\JavaSoft\Java Runtime Environment'\CurrentVersion'为1.8
再一次查看jdk版本,已经切换过来了~
备注:如果执行完上面的3步都没有成功的话, 考虑用jdk8下的3个java文件替换一下system32中的文件。
* system32 |
C盘Windows文件夹中的 是共享文件的安装一目录,而system32文件是系统核心文件就安装在system的文件夹内。
system : 这是系统文件夹,存放了系统中的重要文件(如DLL文件等),一些软件在安装时也会向该文件夹复制文件,因此,随着安装的软件的增加,此文件夹中的内容也会越来越多。该文件夹内的文件一般不要轻易删除,否则会导致系统错误。
对于上面的提到替换system32中的文件,我想用上面的内容说明一下。
* end |
之后我们对于不同版本的jdk便可以随意的切换了,也不用很暴力的将他们删除只保留一个jdk版本。
感谢您宝贵的阅读时间