我有一些代码可以调用..
x = getClass().getClassLoader();
但这会返回 null。
当我不是从 Eclipse 而是从命令行启动相同的代码时,它会返回一个类加载器。
我可以破解代码来做到这一点......
if (getClass().getClassLoader() == null)
{
x = ClassLoader.getSystemClassLoader().getSystemResourceAsStream( loadedPropFileName );
}
两者都使用相同的 JVM 进行编译和运行。 (我99.99%确定)。
有人知道为什么第一个会为类加载器返回 null 吗?
Edit:
我的问题是“任何人都知道为什么同一个类在通过 Eclipse 启动时会返回 null,而在从命令行加载时会返回类加载器”。
感谢您的建议,Bootstrap 加载器必须在 Eclipse 中加载该类。我不知道为什么会发生这种情况。
引用API doc http://java.sun.com/javase/6/docs/api/java/lang/Class.html#getClassLoader():
某些实现可能会使用 null 来
代表引导类加载器。
在这种情况下,该方法将返回 null
如果这个类是实现
由引导类加载器加载。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)