IntelliJ IDEA无法启动:无法加载JDK类:com.sun.jdi.Field


13

当我尝试启动IntelliJ时,会弹出一个对话框

Cannot load a JDK class: com.sun.jdi.Field 
Please ensure you run the IDE on JDK rather than JRE.

确实很奇怪,因为我已经将JAVA_HOMEand PATH变量指向了Java 11 JDK。


有点棘手的事情需要远程调试,但是1)向我们展示您的JAVA_HOME变量。2)检查它是否在IntelliJ配置文件jetbrains.com/help/idea/switching-boot-jdk.html中没有被覆盖3)作为最后的选择,尝试通过配置文件进行更改
Lesiak

@Lesiak更改.jdk文件中的JDK很有帮助!谢谢!
Cerus

使用 JDK 下载IntelliJ 。这应该工作的开箱
托尔比约恩Ravn的安德森

@ThorbjørnRavnAndersen如果不是根据intellij-support.jetbrains.com/hc/articles/206544879进行更改,并且自定义运行时位置无效,请参阅我的答案以获取更多详细信息。
CrazyCoder

@CrazyCoder是的。团队制作“带来自己的jvm”发行版感到很荣幸-它使事情变得更加轻松!
托尔比约恩Ravn的安徒生

Answers:


28

如果您使用其他版本覆盖默认的JetBrains运行时,则会发生此问题,IDE将此运行时的位置保存在CONFIG\idea64.exe.jdk文件下,然后此运行时变得无效(已删除或损坏)或与新的IDE版本不兼容。

解决方案是删除idea64.exe.jdk/ idea.exe.jdk文件,以使IDE使用默认的捆绑JetBrains Runtime(文件名可能因所使用的产品而异,因此一般指南是删除*.jdkIDE config目录中的文件)。

这是应该为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应该会有所帮助。

另请参阅IntelliJ IDEA论坛中相关讨论

该问题正在YouTrack中进行调查


Intellij验证捆绑的JVM文件的完整性是否可行?还是这不是发生的事情?
托尔比约恩Ravn的安徒生

这是一个新问题,我们仍在调查原因。是的,理想情况下,IDE应该验证JVM的完整性,但是通过特定于平台的启动器可能会出现问题。
CrazyCoder

您确定文件不是“ idea.exe.jdk”(或“ idea64.exe.jdk”)...吗?
JaroslavZáruba

1
@JaroslavZáruba更新了答案。
CrazyCoder

1

确保您的IntelliJ版本支持在Java 11上运行(而不只是与其一起编译)。此外,如果您使用的是Windows,并且刚刚定义了JAVA_HOME变量,请重新启动。


我正在使用应该支持Java 11的最新IntelliJ IDEA Ultimate版本。不幸的是,重新启动并不能解决问题。
Cerus


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.