2016-07-19 4 views
1

Eclipseで2つのプロジェクトに取り組んでいます。最初のプロジェクトに応じて1つのプロジェクトのjarライブラリを別のプロジェクトに含めます

プロジェクトAは、プロジェクトに付属する一部のファイルjarに依存し、これらのjarファイルは、EclipseのプロジェクトAの「Javaビルドパス」プロパティの「ライブラリ」タブに追加されています。

プロジェクトBはプロジェクトAに依存し、プロジェクトAのビルドパスにあるjarファイルのいくつかで直接いくつかのクラスを使用しています。

プロジェクトBのJavaビルドクラスにプロジェクトAを追加すると、すでにプロジェクトAのビルドパスにあるJARファイルも追加されると想定していましたが、そうは思われません。

これらのジャーをProject Bのビルドクラスに手動で追加する必要がありますか、設定を見落としていませんか?もしそうなら、それはなぜ有用な標準的な行動ですか?

答えて

2

プロジェクトBのクラスパスにJARファイルを手動で追加する必要があります。

プロジェクト依存性を追加すると、プロジェクトAはプロジェクトBのコンパイル済み出力に依存します。プロジェクトBの出力(コンパイル済み.classファイル)には依存する.jarファイルは含まれません。

これはなぜですか?私は日食作者の根拠は知らないが、私は、クラスパスを可能な限り簡潔かつ冗長に保つことを望んでいると思う。クラスパスに同じライブラリの複数のバージョンがあると、混乱することがあります。

vanilla javaでは、クラスパスのディレクトリ名を指定できます。クラスをロードするとき、JVMはこれらのディレクトリを順番に検索します。 Eclipseでは、各jarが手動で指定されるより厳密なアプローチが推奨されています。一度に複数のjarを追加することができるので、プロジェクトBのすべてのjarをプロジェクトAのクラスパスに追加するのは簡単です。

関連する問題