【问题标题】:issue loading properties file问题加载属性文件
【发布时间】:2011-06-09 17:00:31
【问题描述】:

我在加载时遇到问题

test.xml and test.properties 

在同一个文件夹conf中。

我在 dist 文件夹中有一个 myProject.jar 和 conf 文件夹中的 test.xml 和 test.properties。

要加载xml,我正在使用

document = reader.read(new File("../conf/test.xml"));//its working

但我在加载属性文件时遇到问题, 我正在使用

Class_name.class.getResourceAsStream("../conf/test.properties"),

   getResourceAsStream("conf/test.properties"),
   getResourceAsStream("/test.properties"),
   getResourceAsStream("test.properties"),

属性文件没有任何作用。

感谢任何帮助。

【问题讨论】:

  • 尝试将 conf 放在类路径中,然后执行 getResourceAsStream("test.properties")
  • 同意;您需要决定如何定位文件。您使用的 File 构造函数是文件系统的完整路径名或相对路径名,具体取决于您当前的工作目录。 #getResourceAsStream 将在类路径中找到一个文件——正如 Todd 所说,您需要在类路径中包含“conf”目录才能访问它。根据您希望如何发布您的 jar(带有或不带有配置属性文件)应该会给您一些选择的提示。

标签: java


【解决方案1】:

您为什么不使用FileInputStream 获取文件并加载它

Properties properties = new Properties();
 properties.load(new FileInputStream(fileName));

上述代码将获取属性文件并将其加载到属性对象中。

【讨论】:

    【解决方案2】:

    区分Class.getResourceAsStream(...) 和ClassLoader.getResouceAsStream(...) 很重要。来自 Class 的调用是相对路径。所以我想以下方法会起作用:

    Foo.class.getResourceAsStream("/conf/test.properties"),
    

    ...前提是conf/ 的父级在类路径中。

    如果这不起作用,请查看类加载器在您的环境中是如何设置的。您需要从包含 conf 目录的类加载器中进行查找。

    【讨论】:

      【解决方案3】:

      记住 xml / properties ..what soever 文件应该存在于包的根目录

      例如:com.abce.configuration --->readfile.java

      xyz.xml com -->abcd -->配置 --> readfile.java

      【讨论】:

        猜你喜欢
        • 2013-08-21
        • 1970-01-01
        • 2013-01-15
        • 2010-09-08
        • 2015-12-15
        • 1970-01-01
        • 2012-04-28
        • 2011-06-20
        相关资源
        最近更新 更多