我正在从 c++ 启动线程并调用 Java。JVM 本身的类路径设置正确,所有必要的 jar 都传递给 -Djava.class.path。
为什么“上下文类加载器”会在新线程中为空?
我有这个场景:
ClassLoader cl = Thread.currentThread().getContextClassLoader(); // null on new threads
ClassLoader currCl = MyClass.class.getClassLoader();
ClassLoader jbossCl = org.jboss.remoting.InvocationResponse.class.getClassLoader();
在第一个线程中(它在 Eclipse 中显示为“main”),所有三个对象都是有效的并且包含类。在所有以下线程cl
中为空。
对我来说没有任何意义,如果我将类加载到 JVM 中,它们应该对全局每个线程都可用,不是吗?由于某种原因,currCl 和 jbossCl 中的类数量也大不相同。第一个有〜600,另一个有> 1000