如何获取从中加载类的路径

时间:2016-04-26 12:49:32

标签: java classpath

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

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

/whatever/build/classes/main/

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

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

这是我可以处理的东西

/whatever/build/classes/test/

但我想知道是否有比用字符串搞错更好的方式。

2 个答案:

答案 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"));
        }
   }