我想在类路径上列出一些类,但我不希望所有这些类(而且,扫描整个类路径非常慢)。给定一个ExampleClass,我想让所有类都驻留在相同的类路径条目中(即目录或JAR,其他情况可以忽略)。只有一个ClassLoader。

使用ExampleClass.class.getResource("/")无效,因为我总是会得到第一个类路径条目,例如,

/whatever/build/classes/main/


ExampleClass.class.getResource(".")返回正确条目的子级,例如,

/whatever/build/classes/test/somepackage/ExampleClass.class


这是我可以处理的

/whatever/build/classes/test/


但是我想知道是否有比用字符串愚弄更好的方法。

最佳答案

URL url = ExampleClass.getProtectionDomain().getCodeSource().getLocation();


检查是否为空。

10-07 12:53