9

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

如果我将 bar.war 重命名为 bar.jar 并编辑其目录结构使其看起来像一个 jar,它就可以工作。

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

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

2 回答 2

16

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

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

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

于 2009-07-27T07:22:43.333 回答
0

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

你想达到什么目的?

于 2009-07-27T07:22:07.783 回答