当前位置: 首页 > 面试题库 >

getClass()。getClassLoader()为null,为什么?

朱风史
2023-03-14
问题内容

我有一些调用的代码。

x = getClass().getClassLoader();

不过,这将返回null。

当我从命令行而不是从Eclipse启动相同的代码时,它将返回一个类加载器。

我可以破解代码来做到这一点…

if (getClass().getClassLoader() == null)
{
 x = ClassLoader.getSystemClassLoader().getSystemResourceAsStream( loadedPropFileName );
}

两者都被编译并使用相同的JVM运行。(我确定99.99%)。

任何人都知道为什么第一个会为类加载器返回null?

编辑:

我的问题是:“没有人知道为什么同一类通过Eclipse启动时会返回null,而从命令行加载时会返回类加载器。”

感谢您提供的有关Bootstap加载程序必须在Eclipse中加载该类的建议。我不知道为什么会这样。


问题答案:

引用API文档:

一些实现可能使用null来表示引导类加载器。如果此类是由bootstrap类加载器加载的,则此方法在此类实现中将返回null。



 类似资料:
  • 问题内容: 我正在尝试存储对应用程序属性所做的更改。该文件位于包中,与包含我的UI和模型的包不同。 我使用以下方法打开了包装: 是否有与之等效的功能,允许我将对Properties类的更改持久保存在同一.Properties文件中? 问题答案: 听起来您想存储用户首选项。考虑为此使用Java Preferences API 。

  • 问题内容: 我有这个测试应用程序: 当我从Eclipse运行它时,出现错误: 类路径(来自.CLASSPATH文件) 在我的c:\ project \ src文件夹中,我只有Test.java文件和包含pacman.png的’assets’目录。 我在做什么错以及如何解决? 问题答案: 我会这样: “ /assets/pacman.png”是绝对位置,而“ assets / pacman.png”

  • 问题内容: 在我的Web应用程序中,我在Apache Tomcat(TomEE)/7.0.37服务器上使用OpenJPA。我使用Netbeans自动生成类(“来自数据库的实体类…”和“来自实体类的会话Bean …”)。在SessionBean(例如UserFacade)上,我想获取EntityManager: 但是当我通过上述方式得到它时,我得到的是空值。当我通过: ecm不为空,还可以 我的pe

  • 我正在尝试加载我的 *.fxml 文件,这些文件位于不同的包中,打包在 JAR 中。 我的文件夹结构:(所有文件夹都在类路径中) 正如这里提到的,我使用以下语句来加载FXML文件。(没有前导斜杠“/”)该方法在文件中调用。 如果我在eclipse中运行这个项目,这工作得很好,但是如果我执行JAR(它是用Gradle创建的),就会出现< code > Java . lang . illegalsta

  • 问题内容: 我检查了类的源代码,发现其中的方法声明为 并且的声明是 为什么这两个方法是类中的方法,如何获得这些方法的源代码? 问题答案: 您可以在此处找到本机方法的完整源代码。 希望这对您有用。 这些是本机方法,因为它必须与机器进行交互。这里机器相关的代码被写入在C语言中,这是不与源包或在未来的的所述的位置Java运行时环境(JRE)。 成为本地用户的另一个原因可能是出于性能方面的考虑。由于C级编