新的一年又開始了
你年前的總結還記得么?你新年的計划做好了么?反正我都沒做。
上班第一天大家都在曬着開工紅包,看着一個比一個刷到的紅包多,慶幸自己幸好沒結婚;開心的聊着過年又被七大姑八大姨爺爺奶奶爸爸媽媽催婚,然后自己沒有女朋友;說着同學朋友聚會大家都開着車去的,自己騎着一個自行車;他家孩子已經一歲多了,她又去了一次境外游,他買了房子並漲價四千塊。而你呢,好像還是和去年沒什么兩樣...
第一天我就開始寫代碼了
當和大家一起刷完領導和同事的開工紅包后,我就馬不停蹄的打開電腦准備寫代碼啦!但萬萬沒想到,當我點開 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.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 哈哈,和我一樣,這就好辦了。再接着了解到,雖然我們一直配置的環境變量
中的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 在等着,我認為這才是這個職業的魅力所在,你永遠不知道接下來等着你的是什么,在沒來臨的那一刻。
好了,年也過完了,新的年又開始了,你也許去年混的不怎么樣,但你放心,你今年會依然混的不怎么樣,哈哈,開個玩笑,不過在我有限的認知中,我認為我們所從事的這個職業是現階段社會上的職業中幸福的了(因為我特么沒干過其他職業)。當然,我知道你們又要跳槽了,祝大家找工作的找到好工作,不找工作的好好加班寫代碼,未來都是大家的。