为什么我得到dbunit noclassdeffounderror数据库连接?

时间:2014-11-26 07:54:05

标签: java database-connection noclassdeffounderror dbunit

在我的junit测试类的辅助类中,我从dbunit创建一个新的DataBaseconnection到我的h2databaseconnection:

IDatabaseConnection dBUnitConnection = new DatabaseConnection(h2con);

并尝试在我的类路径中使用“dbunit-2.5.0.jar”运行它,我得到以下错误消息:

java.lang.NoClassDefFoundError: Could not initialize class org.dbunit.database.DatabaseConnection

我不知道什么是错的。我编译并运行它与eclipse工作,但我想从命令行运行junit测试,所以我尝试

java -cp ".;./../libs/*;./libs/dbunit-2.5.0.jar;" org.junit.runner.junitcore testclass

应该有用......

2 个答案:

答案 0 :(得分:1)

从类路径定义中删除双引号:

java -cp .;./libs/dbunit-2.5.0.jar org.junit.runner.junitcore testclass

答案 1 :(得分:1)

您的类路径可能不完整,看起来您的数据库驱动程序jar丢失了。 (NoClassDefFoundError也可能是由初始化类时的问题引起的,例如异常,这与ClassNotFoundException不同。)

根据Eclipse中的Java构建路径检查类路径。

修改

移动我的评论,指出答案的真正原因:

看一下org.dbunit.database.DatabaseConnection的来源,它也可能是一个缺少的slf4j jar。 dbunit使用slf4j进行日志记录,并在初始化DatabaseConnection时尝试初始化slf4j类。