数時間後、私は次のデバッグをあきらめています。
これは機能します:
URL[] urls = ((URLClassLoader) MyClass.class.getClassLoader()).getURLs();
URL myURL = null;
for (URL url : urls) {
if (url.getPath().endsWith("some.jar")) {
myURL = url;
}
}
System.out.println(myURL);
戻り値
file:/C:/Users/Me/.m2/repository/path/to/some.jar
ただし、次のすべてが返されますnull
。
MyClass.class.getClassLoader()).getResource("/some.jar");
MyClass.class.getClassLoader()).getResource("some.jar");
MyClass.class.getClassLoader()).getResource("/C:/Users/Me/.m2/repository/path/to/some.jar");
MyClass.class.getClassLoader()).getResource("/path/to/some.jar");
ご覧のとおり、可能であれば、絶対にアドレス指定しないことで、ユーザーのMavenリポジトリーのjarファイルを取得したいと思います。で示されているように、jarはクラスパスにありgetURLs()
ます。しかし、jarを取得するには、どのように対処するgetResource()
必要がありますか?
どんな助けでも大歓迎です!