解决jdk1.7,1.8共存问题小思
一 起因
随着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完成
五 反思
诸如此类安装环境,配置环境的问题在实际开发中其实遇到的不是很多,或者说只会遇到个别几次,并不会向我们写代码那么频繁。由于次数很少,我们可能并不会遇到这个过程会遇到的所有问题,这样的话,遇到新的问题极有可能浪我们大量的时间,所以在我们使用工具或者说第一次搭建环境的时候,一定要尽量对该工具有足够的了解,再小的问题也要认真的去对待,对工具软件有自己的理解,适当的走一些笔记,这样的话及时遇到第一次见的问题也只是想想几秒钟的事儿了。
解决jdk1.7,1.8共存问题小思的更多相关文章
- (转)解决jdk1.8中发送邮件失败(handshake_failure)问题
解决jdk1.8中发送邮件失败(handshake_failure)问题 作者 zhisheng_tian 2016.08.12 22:44* 字数 1573 阅读 2818评论 6喜欢 9 暑假在家 ...
- linux下开发,解决cocos2d-x中编译出现的一个小问题, undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'
解决cocos2d-x中编译出现的一个小问题 对于cocos2d-x 2.×中编译中,若头文件里引入了#include "cocos-ext.h",在进行C++编译的时候会遇到例如 ...
- 解决 JDK1.7 不支持 VCenter 6.7 的问题(涉及到Https TLS1.2协议)
解决 JDK1.7 不支持 VCenter 6.7 的问题 问题描述 原项目工程是使用JDK 1.7,可以连接 5.X版本和 6.0版本的 VCenter资源池. 但是,现在VCenter已经升到 6 ...
- 解决64位Windows2003程序字体很小的问题
先看问题现象: 如图,字小的一B,并且无法通过更改主题字体大小.对话框字体等操作得到解决. 注:该问题可能不限于64位Windows2003,看完解决方法你就明白了,是有个注册表键值缺失或设置不当造成 ...
- 解决Android ListView 和 ScrollView 共存时冲突 问题 方法其一
转载请注明出处: http://www.goteny.com/articles/2013/11/8.html http://www.cnblogs.com/zjjne/p/3428480.html 当 ...
- Micro:Bit手柄试用之一MagicPad (解决蓝牙与gamePad包共存)
前言 原创文章,转载引用务必注明链接.由于本人初次接触Micro:Bit,水平有限,如有疏漏,欢迎指正. Micro:Bit真好玩! DFRobot的论坛相关资料算是国内比较丰富的了,个人感觉MB比A ...
- 解决Windows内存问题的两个小工具RamMap和VMMap(这个更牛更好)
来源:http://www.cr173.com/html/13006_1.html .net程序内存监测分配工具(CLR Profiler for .NET Framework 4)官方安装版 类型: ...
- 解决Windows内存问题的两个小工具RamMap和VMMap
解决Windows内存问题需要对操作系统的深入理解,同时对于如何运用Windows调试器或性能监控器要有工作认知.如果你正试着得到细节,诸如内核堆栈大小或硬盘内存消耗,你会需要调试器命令和内核数据架构 ...
- 解决MyEclipse代码编辑器中汉字太小的问题
1.问题描述: 新安装的myeclipse 2014,代码编辑器中汉字很小看不清,如下图所示: 2.解决办法: 调整字体即可.通过菜单Windows——Preferences,输入font过滤选择Co ...
随机推荐
- BZOJ2001 HNOI2010城市建设(线段树分治+LCT)
一个很显然的思路是把边按时间段拆开线段树分治一下,用lct维护MST.理论上复杂度是O((M+Q)logNlogQ),实际常数爆炸T成狗.正解写不动了. #include<iostream> ...
- java访问权限表
private(私有的) 默认的(什么都不写) protected(受保护的) public(公共的 ) 同一个类中 yes yes yes yes 同一个包中不同类之间 no yes yes ...
- luogu4933 大师 (dp)
记f[i][j]是以i号为结尾的.公差为j的的个数(不包括只有i的情况) 那么就有$f[i][i-i']=\sum{(f[i'][i-i']+1)}$之类的东西 最后再加个n就行啦 而且公差有可能有负 ...
- 【洛谷P3224】永无乡 并查集+Splay启发式合并
题目大意:给定 N 个点的图,点有点权,初始有一些无向边,现在有 Q 个询问,每个询问支持动态增加一条无向边连接两个不连通的点和查询第 X 个点所在的联通块中权值第 K 大的是哪个点. 题解:学会了平 ...
- js中this的总结
http://www.blogjava.net/baoyaer/articles/105864.html 在面向对象编程语言中,对于this关键字我们是非常熟悉的.比如C++.C#和Java等都提供了 ...
- TCP UDP 数据包过大导致分片情况
MTU大家都知道,是链路层中的网络对数据帧的一个限制,依然以以太网为例,MTU为1500个字节.一个IP数据报在以太网中 传输,如果它的长度大于该MTU值,就要进行分片传输,使得每片数据报的长度小于M ...
- python的异常处理try/except 万能处理exception
1.try方式 try: age=int(input(">>>")) int(age)#主逻辑 num=input(">>>>& ...
- Harbor镜像迁移
目录 背景说明 方案实现 背景说明 在早期生产环境尝试使用docker的时候,虽然使用了harbor作为镜像仓库,但是并没有做好相关存储规划,所有的镜像都直接存储到了harbor本地.随着业务发展,本 ...
- HDU1199 动态线段树 // 离散化
附动态线段树AC代码 http://acm.hdu.edu.cn/showproblem.php?pid=1199 因为昨天做了一道动态线段树的缘故,今天遇到了这题没有限制范围的题就自然而然想到了动态 ...
- Linux就该这么学--第五期 学习笔记
第一节:基础 <Linux就该这么学>第二期视频 Linux就该这么学第5期第二节: ------------你的价值:你对公司做出的共享和你的不可替代性------------瑞尔系统R ...