You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

JVM初始化报错java.lang.NoClassDefFoundError:求助查找JVM安装目录等问题

解决Java初始化报错:Error occurred during initialization of VM java.lang.NoClassDefFoundError: java.lang.Object

嘿,咱们一步步来搞定这个问题——这种报错大多是多JDK版本冲突环境变量配置错误,或者JDK文件损坏导致的。而且你用的JDK14已经采用模块化架构,和旧版JDK的rt.jar机制完全不同,这也是你看旧文档摸不着头脑的原因,下面给你具体的解决步骤:

第一步:先搞清楚系统当前在用哪个JDK

打开命令提示符(CMD),执行这两个命令:

  • 执行 where java:会列出系统能找到的java.exe路径,看看是不是指向你安装的jdk-14.0.2jdk-14.0.1bin目录(比如C:\Programmes\Java\jdk-14.0.2\bin\java.exe)。
  • 执行 echo %JAVA_HOME%:查看输出的路径是不是正确的JDK根目录,如果为空或者指向错误的版本,那就是环境变量的问题。

第二步:修复环境变量(核心解决方法)

你装了两个JDK,大概率是环境变量优先级导致系统调用了损坏的JDK版本:

  1. 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」。
  2. 系统变量区域:
    • 找到JAVA_HOME,修改为你想用的JDK路径(比如C:\Programmes\Java\jdk-14.0.2)。
    • 找到Path变量,点击编辑,把%JAVA_HOME%\bin移到最顶部(确保系统优先找到正确的Java执行文件)。
  3. 保存所有设置后,关闭所有CMD窗口,重新打开一个新的CMD,再执行java -version测试。

第三步:排查JDK是否损坏

如果环境变量配置正确还是报错,可能是JDK文件损坏:

  • 先备份旧的jdk-14.0.1文件夹(如果里面有重要文件的话),然后删除它,避免版本冲突。
  • 重新下载JDK14.0.2的官方安装包,覆盖安装到原路径,或者彻底卸载后重新安装。

注意:JDK9及以上版本已经移除了rt.jar,核心类都封装在lib/modules的模块化文件里,所以你之前看到的针对rt.jar的操作完全不适用于JDK14,不用再纠结这个啦!

关于引导类加载器路径的补充说明

你提到的“修改引导类加载器搜索路径”,在JDK14里已经不用手动操作rt.jar了:
如果确实需要调整核心类路径,要用模块化相关的参数,比如--module-path--add-modules,但这个报错场景下根本不需要调整这个,先把环境变量和JDK完整性问题解决就好。

内容的提问来源于stack exchange,提问作者AymericNgy

火山引擎 最新活动