Java 获取Class.getResource()以使用当前ThreadContext类加载器的最简单方法

Java 获取Class.getResource()以使用当前ThreadContext类加载器的最简单方法,java,classloader,Java,Classloader,看起来Class.getResource()使用了类加载器,而忽略了线程上下文类加载器,这不是我想要的。任何关于如何解决此问题的提示?只需获取当前线程类加载器并在其上运行getResource: Thread.currentThread().getContextClassLoader().getResourceAsStream( "path-to-resource.here" ); 问题是一个错误的类加载器的结果,我的类加载器没有覆盖getResourceAsStream()。一旦实现了这一点

看起来Class.getResource()使用了类加载器,而忽略了线程上下文类加载器,这不是我想要的。任何关于如何解决此问题的提示?

只需获取当前线程类加载器并在其上运行getResource:

Thread.currentThread().getContextClassLoader().getResourceAsStream( "path-to-resource.here" );

问题是一个错误的类加载器的结果,我的类加载器没有覆盖getResourceAsStream()。一旦实现了这一点,一切就都正常了:)

我最终重写了ObjectInputStream.readResolve()以使用传递给ctor的提供程序


thankx all

这正是我试图避免的,因为这意味着我的代码现在需要知道何时检查上下文类加载器或默认值是否为常规方式。