IDEA 啟動無響應


問題現象

昨天關機前沒有先關閉 IDEA,今天啟動 IDEA 發現沒有反應。

問題分析

任務管理器

Ctrl + Shift + Esc」打開任務管理器,發現 idea 進程已經啟動。

殺掉進程重啟 IDEA 也不行。

情況一:非正常關閉

可能是 IDEA 非正常關閉,導致 IDEA 的緩存和索引文件出現錯誤,將其刪除即可。

Win + R」打開運行對話框,輸入「%AppData%」跳轉到用戶數據目錄,定位到 IDEA 對應版本目錄,比如:C:\Users\ageovb\AppData\Local\JetBrains\IntelliJIdea2021.2
IDEA

cachesindex 文件夾刪除,再重新啟動 IDEA。

其他情況

如果不是非正常關閉,可以修改 IDEA 安裝目錄下的 /bin/idea.bat,在最后一行加入 pause
pause

也可以在路徑 C:\Users\ageovb\AppData\Local\JetBrains\IntelliJIdea2021.2\log 下查看日志。

然后雙擊 idea.bat 啟動 IDEA,即可查看啟動失敗原因:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/intellij/idea/Main has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)

錯誤 java.lang.UnsupportedClassVersionError 的意思是不支持的 class 版本,也就是說 com.intellij.idea.Main(這是參考博客里的類,筆者報錯的不是這個類,但是報錯信息一致) 這個 class 文件版本號是 55.0(對應 JDK 11),而運行用的 JRE 是 52.0(對應 JDK 8)。

打開 idea.bat 文件發現 IDEA 獲取 JRE 版本的邏輯(修改 IDEA 的文件一定記得先備份,不然 IDEA 更新時會報錯):
idea.bat

我們只需安裝一個 JDK 11,然后創建一個 %APPDATA%\JetBrains\IntelliJIdea2021.2\idea64.exe.jdk 文件將對應 JDK 路徑填入即可。

奇怪的是,我這邊文件路徑是 C:\Users\ageovb\AppData\Local\JetBrains\IntelliJIdea2021.2,IDEA 竟然也找到了這個路徑
idea64.exe.jdk

重新雙擊 idea.bat 啟動 IDEA,發現還是報錯了:

java.util.concurrent.CompletionException: java.net.BindException: Address already in use: bind

檢索了下,發現是 IDEA 啟動時要從 6942~6991 范圍內選一個端口使用,而這個端口被 Hyper-V 虛擬平台給保留占用了,以管理員模式執行 cmd 命令 netsh interface ipv4 show excludedportrange protocol=tcp 就可以看到。

執行命令 netsh winsock reset 重置網絡端口即可。

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM