在我的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
应该有用......
答案 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类。