Java 的 Exception in thread "main" java.lang.NoClassDefFoundError

本文记录了在使用Java命令行调试过程中遇到的问题及解决方法。当设置classpath加入特定路径后出现NoClassDefFoundError错误,通过调整CLASSPATH配置解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近日,客户提出Java程序运行连接connection有误,因此开始了研究。

由于很久不编写Java 程序,并且多数情况下需要用 Eclipse。此次为简单起见,只用Java 纯命令行进行调试:

刚开始的时候,可以正常运行。

后来,加入了classpath ,反而报错:

Exception in thread "main" java.lang.NoClassDefFoundError: test01
Caused by: java.lang.ClassNotFoundException: test01
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: test01. Program will exit. 

后经反复查阅资料,才明白问题出在哪里。

我们设置了 CLASSPATH以后,我们必须要注意:

CLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\jre\lib\rt.jar;c:\gaojian\jdbc\edb-jdbc14.jar;c:\gaojian\jdbc\c3p0-0.9.2-pre4.jar; c:\gaojian\jdbc\mchange-commons-java-0.2.2.jar

应该改为:

CLASSPATH=.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\jre\lib\rt.jar;c:\gaojian\jdbc\edb-jdbc14.jar;c:\gaojian\jdbc\c3p0-0.9.2-pre4.jar; c:\gaojian\jdbc\mchange-commons-java-0.2.2.jar

这个 . ,表示的是当前路径。 以此备忘。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值