2013-12-21 157 views
0

我想做一个简单的ant构建hibernate测试项目。 编译和构建(jar)期间没有错误。Ant java任务NoClassDefFoundError

但是当我运行它,我得到这个:

java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration ... 

我发现了一个提醒,有什么说:罐子应该被添加到类路径中的命令行,(类路径被忽略时,从蚂蚁的jar运行... EHH),确定我试过如下:

java -jar dist/student.jar -cp /home/myname/workspace/basic_ant1/lib/hibernate/hibernate-core-4.2.8.Final.jar 

但还是有一些错误:NoClassDefFoundError的...

我是怎么了?

感谢您提前回复。

(org.hibernate.cfg处于休眠芯-4.2.8.Final.jar)

Cs中。

+0

可能重复[Ant在构建runnable jar时卡住](http://stackoverflow.com/questions/20644414/ant-gets-stuck-while-building-runnable-jar) –

+0

Mark,你提到的那个标题是太抽象了。 – user2013619

+0

同意,但解决方案不是。这个问题以不同的名义反复提问。运行jar时出现NoClassDef异常。完全相同根源,未能填充清单文件的“类路径”部分。我希望我的例子有所帮助。 –

回答

1

-jar-cp是互斥的。

如果你想使用java -jar那么你的主要JAR文件必须在其清单一Class-Path条目指向其他所有的罐子其Main-Class要求(该manifestclasspath任务是生成该值的简便方法)。

如果您使用java -cp那么您必须在命令行上提供主类名称,则忽略清单中的Main-Class

+0

非常感谢伊恩,感谢提到'manifestclasspath',因为我之前阅读过类似的解决方案,但我不相信我应该列出所有依赖的jar来手动显示(当我已经有一个定义良好的类路径进行编译时)。这就是为什么我忽略了这个解决方案真的感谢 – user2013619