将WAR添加到Java的类路径中

时间:2009-07-27 07:17:42

标签: java jar dependencies war classnotfound

我有两场战争,foo.war和bar.war。 foo使用bar中的类。 我正在尝试启动foo,并添加到Java的classpath bar.war,但是java会抛出ClassNotFoundException。

如果我将bar.war重命名为bar.jar并将其目录结构编辑为jar,那就可以了。

关于-CP开关的Java文档没有提到war文件:

 -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.

2 个答案:

答案 0 :(得分:16)

WAR文件是整个Web应用程序,而不是库。它们包含库,但它们本身就是应用程序。

一个Web应用程序不应该依赖于另一个应用程序。它们可能依赖于相同的库,但不能相互依赖。

基本上提取常用功能,使其成为库(作为jar文件),并在两个WAR文件中包含该jar文件,或将其添加到类路径的公共部分。

答案 1 :(得分:0)

war文件的结构与jar非常不同,所以它不起作用。 Java类文件保存在WAR的classes目录中,而Jar直接具有Java类文件。为什么不添加具有bar.war的Java类文件的文件夹?

你想要达到什么目标?