В нерабочее время я отказываюсь от отладки:
Это работает:
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-репозиторием пользователя, не обращаясь к нему абсолютно, если возможно. Баночка находится в пути к классам, как показано getURLs()
Но как, черт возьми, я должен обратиться к нему в getResource()
, чтобы получить его?
Любая помощь приветствуется!