2009-07-27 15 views
8

私はfoo.warとbar.warという2つの戦争があります。 fooはbarのクラスを使用します。 私はfooを起動し、Javaのクラスパスbar.warに追加しようとしていますが、javaはClassNotFoundExceptionをスローします。JavaのクラスパスにWARを追加する

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

私はこのような問題を抱えています。私は何十ものjarファイルと何十もの設定ファイルを持っていて、戦争に投げ込まれ、私の "Classpath"としてそれを使ってグルーヴィースクリプトを実行したいと思っています。ただ仕事。いつもの選択肢がありますが、これは最も柔軟な方法でしたし、おそらく私の仕事の日数を節約していたでしょう...ああ、次の解決策に。とにかく質問の+1 - 私はしばらく時間を節約しました。 –

答えて

15

WARファイルは、Webアプリケーション全体であり、ライブラリではありません。それらはにはライブラリが含まれていますが、それ自体はアプリケーションです。

1つのWebアプリケーションは、別のアプリケーションに依存すべきではありません。それらは同じライブラリに依存するかもしれませんが、お互いに依存しないかもしれません。

基本的に共通の機能を抽出し、ライブラリを(jarファイルとして)作成し、両方のWARファイルにそのjarファイルをインクルードするか、クラスパスの共通部分に追加します。

+0

私たちの成長するプロジェクトリストでは、まだ別のプロジェクトを避けようとしていました。しかたがない。 – ripper234

0

それは動作しませんので、warファイルの構造は、瓶は非常に異なっています。 JavaクラスファイルはWARのclassesディレクトリに格納され、JarはJavaクラスファイルを直接持ちます。 bar.warのJavaクラスファイルがあるフォルダを追加しないのはなぜですか?

達成しようとしていることは何ですか?

関連する問題