2013-12-21 156 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