9

foo.warとbar.warの2つの戦争があります。fooはbarのクラスを使用します。fooを起動し、Javaのクラスパス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.
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 に答える