小编典典

查找从哪里加载 java 类

all

有谁知道如何以编程方式找出java类加载器实际从哪里加载类?

我经常在大型项目中工作,其中类路径变得很长,手动搜索并不是一个真正的选择。我最近遇到了一个问题,即类加载器加载了一个不正确的类版本,因为它位于两个不同位置的类路径上。

那么如何让类加载器告诉我实际的类文件来自磁盘的哪个位置?

编辑: 如果类加载器由于版本不匹配(或其他原因)实际上无法加载类怎么办,无论如何我们可以在读取它之前找出它试图读取的文件吗?


阅读 64

收藏
2022-06-28

共1个答案

小编典典

这是一个例子:

package foo;

public class Test
{
    public static void main(String[] args)
    {
        ClassLoader loader = Test.class.getClassLoader();
        System.out.println(loader.getResource("foo/Test.class"));
    }
}

这打印出来:

file:/C:/Users/Jon/Test/foo/Test.class
2022-06-28