一 起因
随着jdk1.9呼之欲出之势,准备花点时间把jdk1.8搞掉,于是准备下一个项目的依赖改为jdk1.8,先去下载安装,安装好之后电脑上就存在两个版本的jdk。然后将两个版本的jdk路径都配置在环境变量中,我也很期待会出现啥情况,然后cmd-->java-version出现下面:
比较开心,正是我期待的结果,然后啥都没管就傻傻的去开发了,然后过几天需要切换回jdk1.7,挖了一些坑。
二 初次进行切换
首先右键查看我的电脑-->属性-->高级系统设置-->环境变量-->path,查看配置的环境,发现1.7和1.8都有配置在环境中,那为什么会运行jdk1.8呢?从源头出发,之所以能够在命令行开启或者是查看jdk1.8,主要是因为在c盘-->windows--.system中或者其子目录下包含相关程序,于是找到java,Java,javaw三个文件并将其删除,删除后再次在cmd窗口测试java:
oh no,大概意思是我想要启动jdk1.7但是环境还是1.8???我有点懵比,你是怎么知道我要启动1.7,后来仔细一想,任何标记程序启动最终还是在注册表里去找对应的坐标和环境坐标,于是准备去注册表试试。
三 解决冲突
好的,下面进入注册表(regedit)进入后ctrl+f进行搜索Java Development Kit,找到jdk的坐标位置并进行配置。
。。。。稍等
然后搜索到这个,可以看到,第一个是jdk,第二个是java运行环境,现在回忆一下刚刚的报错信息,have value1.8,but 1.7 is required,也就是说注册表中的jdk环境是1.8,但是注册表中的jdk是1.7,这样的话只需要保证两个一致就行了,可以参考我的设置
具体版本信息根据你自己下载的jdk版本决定(只要一致就行)java运行环境中的Browser JavaVersion(java能够适配到的浏览器版本)可以忽略。
好了这样一来就解决了jdk1.7和jdk1.8共存的冲突问题,下图已解决。
·后来一想,这样设置之后。会不会无法切换jdk1.8,每次都要去注册表切换??
然后我试着把环境变量设置成jdk1.8,结果:
这是我先要的效果--->只需要改变环境变量中JAVA_HOME的位置即可,但为啥是这样呢,注册表明明是1.7
然后我去注册表再去看了一下,好吧,jdk1.8会自动生成在里面,并且也有MSI文件,这样的话就彻底解决jdk冲突了。
四 更多的坑
配置好玩环境后,我自觉地打开eclipse。。。无法启动(图片忘记截取了)意思就是说,myeclipse需要的环境是1.7,当前系统环境是1.8,无法启动。
想一想myeclipse还能在哪儿配置环境,打开安装目录找到myeclipse.ini,发现里面配置的是1.7,将其改成当前系统的环境即可。
如图,-vm的值指定到当前系统jdk的位置即可,在此启动myeclipse完成
五 反思
诸如此类安装环境,配置环境的问题在实际开发中其实遇到的不是很多,或者说只会遇到个别几次,并不会向我们写代码那么频繁。由于次数很少,我们可能并不会遇到这个过程会遇到的所有问题,这样的话,遇到新的问题极有可能浪我们大量的时间,所以在我们使用工具或者说第一次搭建环境的时候,一定要尽量对该工具有足够的了解,再小的问题也要认真的去对待,对工具软件有自己的理解,适当的走一些笔记,这样的话及时遇到第一次见的问题也只是想想几秒钟的事儿了。