几个小时后,我放弃了调试以下内容:
这有效:
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()
但是我必须如何解决它getResource()才能得到它?
任何帮助表示赞赏!