zoukankan      html  css  js  c++  java
  • 新年上班第一天,我的 IDE 挂了

    新的一年又开始了

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

    第一天我就开始写代码了

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

    eclipse_erroe.png

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

    cmd_error.png

    Error: Registry key 'SoftwareJavaSoftJava Runtime Environment'CurrentVersion'
    
    has value '1.7', but '1.8' is required.
    Error: could not find java.dll
    Error: 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 哈哈,和我一样,这就好办了。再接着了解到,虽然我们一直配置的环境变量中的PathJAVA_HOME等这些东西,但当我们在命令行窗口执行java -version或打开 Eclipse 的时候,执行的并不是环境变量配置下bin目录的文件,而是C:WindowsSystem32下的文件。

    了解原因以后,那再根据提示就会发现:可能我的C:WindowsSystem32下的文件是 1.8 版本的,不是 1.7 的。这是因为我先安装的 JDK 版本是 1.7 的,这时候C:WindowsSystem32下的文件肯定只有 1.7 版本的,但当我又安装了 1.8 版本的 JDK 之后,系统可能把 C:WindowsSystem32 下的 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_MACHINESOFTWAREJavaSoft节点,查看Java Runtime EnvironmentJava Development kit中的CurrentVersion值是不是 1.7 ,不是就改为 1.7 。如图:

    regedit.png

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

    jdk_bin.png

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

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

    cmd_success.png

    总结一下

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

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

  • 相关阅读:
    Android 2.2 r1 API 中文文档系列(11) —— RadioButton
    Android API 中文 (15) —— GridView
    Android 中文 API (16) —— AnalogClock
    Android2.2 API 中文文档系列(7) —— ImageButton
    Android2.2 API 中文文档系列(6) —— ImageView
    Android 2.2 r1 API 中文文档系列(12) —— Button
    Android2.2 API 中文文档系列(8) —— QuickContactBadge
    [Android1.5]TextView跑马灯效果
    [Android1.5]ActivityManager: [1] Killed am start n
    Android API 中文(14) —— ViewStub
  • 原文地址:https://www.cnblogs.com/mafly/p/morejdk.html
Copyright © 2011-2022 走看看