idea64.exe啓動錯誤:Cannot start under Java 1.7.0xxx

IntelliJ IDEA : Unsupported java version Cannot start under Java 1.7.0_xxx: Java 1.8 or later is required

在windows使用IntelliJ IDEA 2016.2,在啓動idea64.exe的時候,出現”Cannot start under Java 1.7.0_xxx: Java 1.8 or later is required”錯誤。通過查看官方文檔Selecting the JDK version the IDE will run under發現idea64.exe搜索JDK的時候使用如下的順序:

idea64.exe uses this JDK search sequence:
1. IDEA_JDK_64 environment variable
2. ..\jre64 directory
3. system Registry
4. JDK_HOME environment variable
5. JAVA_HOME environment variable

按照提示,首先在系統的環境變量中增加了IDEA_JDK_64變量,賦值指向了本機所安裝的jdk的路徑,但是設置後還是不起作用,仍然還是報上述的錯誤。
我的機子之前確實裝過java 7,但是我在系統環境變量中已經設置了JAVA_HOME環境變量以及在Path中加入了JAVA_HOME。這時我猜想可能是之前安裝Java 7的時候把一些信息寫入到了system Registry中。在系統system32文件夾中打開控制檯,輸入:”java -version”,確實打印出java 7的版本信息,於是將Java 8中的java.exe, javaw.exe以及javaws.exe複製到system32中進行替換,但這時idea64.exe仍然啓動不了。本來以爲與這個有關,但是又一想,按照上面的搜索順序,按理說配置了IDEA_JDK_64環境變量指向java 8應該就可以了,後面的步驟不會再去搜索。所以肯定還是與jdk本身有關。
然後打開了IntelliJ IDEA安裝目錄bin文件夾下的idea.bat腳本。在裏面發現下面這句代碼:

IF EXIST "%JRE%\lib\amd64" SET BITS=64

然後,我想難道我安裝的不是64位的jdk,因爲這個導致idea64.exe不能運行的嗎。根據上面那句代碼的提示,我打開jdk8的安裝目錄,果然沒有發現amd64這個文件夾。。。果斷卸載,重新下載64位的jdk8進行安裝。然後重新配置IDEA_JDK_64環境變量,發現果然是可以了。真是被坑的厲害。
通過這次的試驗,我猜測第一次配置IDEA_JDK_64環境變量沒有起作用的原因應該是,idea64.exe啓動的時候首先去查找IDEA_JDK_64環境變量,找到了,但是一驗證是否存在amd64文件夾,發現不存在,就認爲配置是不正確的,所以繼續往下查找,去查找..\jre64 directory目錄,這個應該又是沒有找到,然後又去查找system Registry,我不知道這個所謂的system Registry是在哪裏配置的(應該是’Software\JavaSoft\Java Runtime Environment\CurrentVersion’以及’Software\JavaSoft\Java Development Kit\CurrentVersion’這裏面的值)。但是應該是在安裝jdk7的時候配置了這個信息,所以idea64.exe認爲當前安裝的jdk版本是7,不符合要求,因此返回了相應的錯誤。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章