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