java - IntelliJ IDEA 无法启动:无法加载 JDK 类:com.sun.jdi.Field
问题描述
当我尝试启动 IntelliJ 时,我得到一个弹出窗口说
Cannot load a JDK class: com.sun.jdi.Field
Please ensure you run the IDE on JDK rather than JRE.
这真的很奇怪,因为我已经将JAVA_HOME
andPATH
变量指向了 Java 11 JDK。
解决方案
如果您使用其他版本覆盖默认的 JetBrains 运行时,则会出现此问题,IDE 将此运行时的位置保存在CONFIG\idea64.exe.jdk
文件下,然后此运行时变为无效(删除或损坏)或与新的 IDE 版本不兼容。
解决方案是删除idea64.exe.jdk
/idea.exe.jdk
文件,以便 IDE 使用默认捆绑的 JetBrains Runtime(文件名可能因您使用的产品而异,因此一般指南是删除*.jdk
IDE配置目录中的文件)。
这是 Windows 上大多数用户应该删除的文件:
c:\Users\<user>\AppData\Roaming\JetBrains\IntelliJIdea2020.1\idea64.exe.jdk
当此文件指向 Java 8 时会出现此问题,因为 IntelliJ IDEA 不再在 Java 8 上运行,而是需要 Java 11。Java 11 已经捆绑,但是这个文件覆盖了它,因此出现了问题。
还请查看此文档以了解覆盖 IDE 运行时的其他可能方法,并确保这些方法均无效:
IDEA_JDK_64
环境变量也可能会覆盖默认运行时,您需要取消设置它。
另一个可能的问题是jbr
子目录中捆绑的运行时已损坏。java -version
通过在里面运行来验证它IDE_HOME\jbr\bin
。重新安装 IDE 应该会有所帮助。
YouTrack 正在调查此问题。
推荐阅读
- vue.js - 使用表格格式显示多个复选框
和 在 Vuetify 中? - dart - 如何解决 Flutter 中的“断言失败:布尔表达式不得为空”异常
- java - MalformedURLException:未知协议:android
- html - 如何在 MVC 中为一个属性获取多个复选框
- java - 将 kafka 与 jpa 一起使用时的良好做法
- google-apps-script - copyTo(destination, copyPasteType, transposed) 停止执行其余函数
- schema - JSON-LD 架构不会在 SDTT 中验证
- php - 在调用其成员函数之前检查 DOMnode 是否存在
- javascript - 我想像台球母球一样进行约束
- asp.net - Visual Studio 中的 FTPS 发布失败,导致“安全连接已被远程连接端关闭”。