0

私のプロジェクトの構造には、3つのメインフォルダーが含まれています(1に含まれる3つのプロジェクトなど)。

Main/java/..
Main1/java/..
Main2/java/..

これらの3つのモジュールでは、ソースフォルダーはjavaです。私の問題は、Main1からgetResourceメソッドを使用して、Main2からファイルのURLを取得する方法です。MyClass.getResource(/ xxx / xxx / xxx)を使用すると、Main1ルートディレクトリを指します。

前もって感謝します。

4

1 に答える 1

2

javadocがgetResource言うように

最初に親クラスローダーでリソースを検索します。親がnullの場合、仮想マシンに組み込まれているクラスローダーのパスが検索されます。それが失敗すると、このメソッドはfindResource(String)リソースを見つけるために呼び出します。

したがって、クラスパスにMain2のクラスが含まれている必要があります。別の方法は、独自ClassLoaderのを実装し、findResourceクラスをロードするメソッドを実装することです。クラスパスにクラスを含めることは、より合理的で簡単なアプローチのようです(個人的には、自分が何をしているのかを本当にCLassLoader理解していない限り、sをいじることは一般的に良い考えではないと思います)。

于 2011-05-16T10:38:07.033 に答える