我有两场战争,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.
答案 0 :(得分:16)
WAR文件是整个Web应用程序,而不是库。它们包含库,但它们本身就是应用程序。
一个Web应用程序不应该依赖于另一个应用程序。它们可能依赖于相同的库,但不能相互依赖。
基本上提取常用功能,使其成为库(作为jar文件),并在两个WAR文件中包含该jar文件,或将其添加到类路径的公共部分。
答案 1 :(得分:0)
war文件的结构与jar非常不同,所以它不起作用。 Java类文件保存在WAR的classes目录中,而Jar直接具有Java类文件。为什么不添加具有bar.war的Java类文件的文件夹?
你想要达到什么目标?