我有一些代码可以调用..
x = getClass().getClassLoader();
虽然这会返回 null。
当我不是从 Eclipse 而是从命令行启动相同的代码时,它返回一个类加载器。
我可以破解代码来做到这一点……
if (getClass().getClassLoader() == null)
{
x = ClassLoader.getSystemClassLoader().getSystemResourceAsStream( loadedPropFileName );
}
两者都使用相同的 JVM 编译和运行。 (我有 99.99% 的把握)。
任何人都知道为什么第一个会为类加载器返回 null?
编辑:
我的问题是“任何人都知道为什么同一个类在通过 Eclipse 启动时会返回 null,而在从命令行加载类加载器时会返回 null。”
感谢 Bootstap 加载程序必须在 Eclipse 中加载类的建议。我不知道为什么会这样。
原文由 jeff porter 发布,翻译遵循 CC BY-SA 4.0 许可协议
引用 API 文档: