私には3つのJavaプロジェクトA、B、Cがあります。BはAのアドオンのようなものです。AとBはどちらも、一部のクラスでプロジェクトCに依存しています。
プロジェクトAで、URLClassLoaderを次のように使用すると次のようになります。
URLClassLoader ucl = new URLClassLoader(urls); //urls are paths to some classes in B
これらのuclを使用しているときに、Bでいくつかのメソッドを呼び出すと、クラス定義が見つからないという例外が発生します。これはCであるクラス用です。
ClassLoaderを次のように使用すると、次のようになります。
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URLClassLoader ucl = new URLClassLoader(urls, classLoader);
これは、Bのメソッドを呼び出すときに正常に機能します。私の質問:
1)最初の方法で行う場合、どのClassLoaderが使用されていますか?JavaDocsを読みましたが、説明できるものが見つかりませんでした。
2)依存関係の問題が発生しないように、プロジェクトBに固有のClassLoaderを取得する方法はありますか?これを何らかの方法で使用できますか?
助けてくれてありがとう。