我想在类路径中列出一些类,但我不想要所有这些类(此外,扫描整个类路径非常慢)。给定一个ExampleClass
,我想让所有类都驻留在同一个类路径条目中(即目录或JAR,其他情况可以忽略)。只有一个ClassLoader。
使用ExampleClass.class.getResource("/")
不起作用,因为我总是得到第一个类路径条目,例如,
/whatever/build/classes/main/
ExampleClass.class.getResource(".")
会返回正确条目的子项,例如
/whatever/build/classes/test/somepackage/ExampleClass.class
这是我可以处理的东西
/whatever/build/classes/test/
但我想知道是否有比用字符串搞错更好的方式。
答案 0 :(得分:2)
URL url = ExampleClass.getProtectionDomain().getCodeSource().getLocation();
但是检查是否为空。
答案 1 :(得分:0)
以下是一个例子:
=If($G240="EVO", Do True Condition, IF(SOME CHECK to determine DO FOMULA 1 or CHECK for G240 = FREE, Do Formula 1, IF(G$240=Free, Do Free True Condition, Do Free False Condition)))
输出是:
package foo;
public class Test
{
public static void main(String[] args)
{
ClassLoader loader = Test.class.getClassLoader();
System.out.println(loader.getResource("foo/Test.class"));
}
}