【问题标题】:How do I use the Java ClassLoader to load a file fromthe classpath?如何使用 Java 类加载器从类路径加载文件?
【发布时间】:2009-09-16 23:17:04
【问题描述】:

我想使用 ClassLoader 为 Properties 类加载一个属性文件。为了讨论的目的,我简化了以下代码以删除错误处理:

loader = this.getClass().getClassLoader();
in = loader.getResourceAsStream("theta.properties");
result = new Properties();
result.load(in);

在与此类相同的目录中,我有文件“theta.properties”,但 InputStream 始终为空。我是不是把文件放错地方了?我正在使用 eclipse 及其设置将类文件构建到源文件夹 - 所以这不应该是问题。

我在 JavaDoc 中找不到任何东西来让 ClassLoader 告诉我正在搜索什么类路径。

【问题讨论】:

    标签: java properties classloader


    【解决方案1】:

    通过使用getClass().getClassloader(),您可以从根路径目录中查找“theta.properties”。只需使用getClass().getResourceAsStream() 获取与该类相关的资源。

    【讨论】:

      【解决方案2】:

      如果文件与类在同一目录下,则必须将类的包作为目录作为前缀。

      所以如果你的包裹是:

      package com.foo.bar;
      

      那么你的代码是:

      .getResourceAsStream("com/foo/bar/theta.properties");
      

      【讨论】:

        【解决方案3】:

        你可以使用资源包

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-04-21
          • 1970-01-01
          • 1970-01-01
          • 2014-11-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多