专栏名称: 程序员大咖
为程序员提供最优质的博文、最精彩的讨论、最实用的开发资源;提供最新最全的编程学习资料:PHP、Objective-C、Java、Swift、C/C++函数库、.NET Framework类库、J2SE API等等。并不定期奉送各种福利。
目录
相关文章推荐
51好读  ›  专栏  ›  程序员大咖

新年上班第一天,我的 IDE 挂了

程序员大咖  · 公众号  · 程序员  · 2017-02-10 20:34

正文

请到「今天看啥」查看全文


你年前的总结还记得么?你新年的计划做好了么?反正我都没做。

上班第一天大家都在晒着开工红包,看着一个比一个刷到的红包多,庆幸自己幸好没结婚;开心的聊着过年又被七大姑八大姨爷爷奶奶爸爸妈妈催婚,然后自己没有女朋友;说着同学朋友聚会大家都开着车去的,自己骑着一个自行车;他家孩子已经一岁多了,她又去了一次境外游,他买了房子并涨价四千块。而你呢,好像还是和去年没什么两样...



第一天我就开始写代码了



当和大家一起刷完领导和同事的开工红包后,我就马不停蹄的打开电脑准备写代码啦!但万万没想到,当我点开 Eclipse 的时候,她给我弹出一个对话框,我以为是要祝我新年快乐、鸡年大吉呢!谁知道...



Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion' has value '1.7', but '1.8' is required.

明显感受到了来自 IDE 深深的新年祝福,新年第一天打开电脑第一件事就是修复 IDE,也是够了。不过,从对话框上的文字,可以得出是 JDK 版本冲突了,这时候我想起来,在过年前放假回家的前一天,我在这台电脑上又装了 Java 1.8 版本的 JDK 来调试其他的一个项目。CMD 打开命令行窗口,敲击 java -version 命令,果然还是这句话:



Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'has value '1.7', but '1.8' is required.Error: could not find java.dllError: Could not find Java SE Runtime Environment.

翻译成人话:出错啦!你告诉我 1.7 ,却给我 1.8 ,找不到!找不到!!



既然IDE挂了

那就不写代码了



怎么可能,今天还有一个小功能要上线呢。首先考虑是环境变量配置出问题,检查也没错,都是之前配置的 1.7 版本;接着检查注册表都没有什么异常, CurrentVersion 也都是之前的 1.7 版本;我想不出来还是什么问题了,就去 Google 了一下,找到了 SO 上的一个问题: Registry key Error: Java version has value '1.8', but '1.7' is required 哈哈,和我一样,这就好办了。再接着了解到,虽然我们一直配置的 环境变量 中的 Path\JAVA_HOME 等这些东西,但当我们在命令行窗口执行 java -version 或打开 Eclipse 的时候,执行的并不是环境变量配置下 bin 目录的文件,而是 C:\Windows\System32 下的文件。


了解原因以后,那再根据提示就会发现:可能我的 C:\Windows\System32 下的文件是 1.8 版本的,不是 1.7 的。这是因为我先安装的 JDK 版本是 1.7 的,这时候 C:\Windows\System32 下的文件肯定只有 1.7 版本的,但当我又安装了 1.8 版本的 JDK 之后,系统可能把 C:\Windows\System32 下的 1.7 版本文件覆盖掉了!掉了!!掉了!!!那我就替换呗。


肯定有人会问:既然知道是多个不同 JDK 版本,卸载年前安装的 1.8 版本不就行了?那可不行,1.8 还有用呢,所以,需要保留 JDK 1.7 和 1.8 两个版本,现在要做的就是 让两个版本共存且不再冲突。



替换

两个不同版本JDK共存



Windows 下多个 JDK 版本共存首要条件是得仅有一个版本为主要的,其他不同的版本 JDK 调用只需要在 Tomcat 的 bin/catalina.bat 中配置 JAVA_HOME 即可了。选定自己需要的 JDK 版本后,就要把环境变量的 JAVA_HOME 、注册表等这些关于 JDK 版本的配置改为你需要的,我这里需要 1.7 版本,就拿 1.7 版本做演示。

  1. 安装 1.7 和 1.8 JDK,配置 1.7 环境变量(已安装,略)。

  2. 查看或修改注册表

找到 HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft 节点,查看 Java Runtime Environment Java Development kit 中的 CurrentVersion 值是不是 1.7 ,不是就改为 1.7 。如图:



3.替换 java.exe/javaw.exe/javaws.exe
找到环境变量 JAVA_HOME 中配置路径下的 bin 目录中的 java.exe/javaw.exe/javaws.exe 这三个文件,用这三个替换 C:\Windows\System32 C:\Windows\SysWOW64 中的文件。如图:



当然,还有 C:\ProgramData\Oracle\Java\javapath 下的这三个文件快捷方式,也要替换一下。

4.完成
命令行窗口再次执行 java -version ,看到下面画面就是成功啦!Eclipse 也能打开了,我写完了代码。



总结一下



新年开工第一天竟然是以修 IDE 开始的,打死我也想不到,但我们作为开发者不就是整天在做修补工作么,修完这个 Bug ,还有下一个 Bug 在等着,我认为这才是这个职业的魅力所在,你永远不知道接下来等着你的是什么,在没来临的那一刻。


好了,年也过完了,新的年又开始了,你也许去年混的不怎么样,但你放心,你今年会依然混的不怎么样,哈哈,开个玩笑,不过在我有限的认知中,我认为我们所从事的这个职业是现阶段社会上的职业中幸福的了(因为我特么没干过其他职业)。当然,我知道你们又要跳槽了,祝大家找工作的找到好工作,不找工作的好好加班写代码,未来都是大家的。


作者:Mafly

来源:http://www.cnblogs.com/mafly/p/morejdk.html








请到「今天看啥」查看全文