A はビルド パスに jar B を
持ち、B はビルド パスに jar C を持ち、
A で C のクラスを使用できますか?
前もって感謝します
ビルド パスに jar b と jar c があるだけでは不十分です。これらのオプションのいずれかを使用して、目的を達成できます。
Class-Path: c.jar を含む jar b マニフェストに新しい行を追加する Class-Path: b.jar を含むマニフェストを jar に追加する新しい行を追加する
java -cp a.jar;b.jar;c.jar yourfullclassname
これらの jar の作成とその後の使用法を区別する必要があると思います。
たとえば、jar C を参照する jar B をビルドできますが、2 つを一緒にデプロイする必要があります。jar A のビルドを行わない場合は、jar B を参照しますが、jar C がないと機能しません。
代わりに、ビルドで B のコードを取得し、それを jar C のコンテンツと一緒にパッケージ化することもできます。次に、A で B と C を一緒に使用できます。
この依存関係の管理は非常に複雑になる可能性があります (ご覧のとおり)。複数の jar を提供する必要がないようにコードを一緒にパッケージ化すると、作業が楽になります (参照する jar は 1 つだけです) が、アップグレードが面倒になります (たとえば、1 つの共通ライブラリをアップグレードすることはできません)。Maven のようなツールは、これに対処するためのオプションを提供します (この jar はコンパイルのみに必要か、プログラムと一緒にパッケージ化するか、テストのみに使用するかなど)。
クラスパスに A、B、および C がある場合、他のクラスからこれらのクラスを使用できます。必要なのは、参照または参照への参照などです。
はい、使用できます。すべてのjarがクラスパスにある場合、どこでも使用できるためです。