2009-07-27 182 views
8

我有兩場戰爭,foo.war和bar.war。 foo使用欄中的類。 我想啓動foo,並添加到Java的classpath bar.war,但是java會拋出一個ClassNotFoundException異常。將WAR添加到Java的類路徑

如果我將bar.war重命名爲bar.jar,並將其目錄結構編輯爲jar,它就可以工作。

Java的了〜CP交換機上的文件並沒有提及戰爭的文件:

-classpath <class search path of directories and zip/jar files> 
       A ; separated list of directories, JAR archives, 
       and ZIP archives to search for class files. 
+0

我有一個類似的問題 - 我有幾十個罐子和幾十個配置文件被扔進一場戰爭,並希望能夠使用它作爲我的「Classpath」運行一個groovy腳本,並擁有它只是工作。總有其他選擇,但這將是最靈活的方式,可能會爲我節省幾天的工作時間......噢,接下來的解決方案。無論如何,這個問題+1 - 爲我節省了一些時間。 – 2012-08-15 22:46:24

回答

15

WAR文件是指整個Web應用程序,而不是庫。他們包含庫,但它們本身就是應用程序。

一個Web應用程序不應該依賴於另一個應用程序。他們可能依賴於相同的圖書館,但不依賴於彼此。

基本上提取出常用的功能,使它成爲一個庫(作爲jar文件),並將這個jar文件包含在兩個WAR文件中,或者將它添加到類路徑的公共部分。

+0

正試圖避免我們不斷增長的項目列表中的另一個項目。好吧。 – ripper234 2009-07-27 07:40:21

0

戰爭文件的結構是非常不同的,那麼一個罐子所以這是行不通的。 Java類文件保存在WAR的類目錄中,而Jar直接具有Java類文件。爲什麼不添加具有bar.war的Java類文件的文件夾?

你想達到什麼目的?