【问题标题】:Java Properties File not loadingJava 属性文件未加载
【发布时间】:2011-06-14 05:13:13
【问题描述】:

我的程序中需要一个配置文件来存储一些信息,我看到了一些属性文件的示例并尝试使用它们,但是每当我在 NetBeans 上尝试第二行时,我都会得到“Package sortConfig 不存在”'@ 987654321@> Expected' 和 'Illegal start of type'。

问题是我已经看到大约 10 个示例都以相同的方式执行此操作,但我不知道发生了什么。

Properties sortConfig = new Properties();

sortConfig.load(this.getClass().getClassLoader().getResourceAsStream("sortConfig.properties"));

任何帮助将不胜感激

我的 .java 类和我的属性文件在 src 上,在同一个包文件夹中

【问题讨论】:

  • sortConfig.properties 位于何处?你能添加你的包结构吗?
  • 您似乎遇到了编译错误,但这没有意义。这两行编译得很好,它们一定是放错了地方或其他什么。提供更多上下文。

标签: java properties


【解决方案1】:

您的属性文件似乎没有完全限定的路径。您可以通过两种方式获得它:-

  1. 使用 java.util.ResourceBundle:

ResourceBundle 捆绑包 =ResourceBundle.getBundle("br.com.example.sortConfig"); //.properties 是隐含的

  1. 使用 ClassLoader.getResouceAsStream:
sortConfig.load(this.getClass().getClassLoader().getResourceAsStream("br/com/example/sortConfig.propertie"));

有关如何加载属性文件资源的优秀教程,请查看link

【讨论】:

  • ClassLoader 没有工作,但是 ResourceBundle 工作得很好,所以我没有打扰,谢谢你的回答
【解决方案2】:

另一种方法是使用this.getClass().getResourceAsStream(),它接受相对路径名(相对于你的类所在的包),所以你可以简单地写

sortConfig.load(this.getClass().getResourceAsStream("sortConfig.properties"));

当你特别想依赖你的类和属性文件在同一个包中时,这很有用。 (因此,当您在重构期间移动一个时,您也必须移动另一个。)

【讨论】:

    猜你喜欢
    • 2013-01-15
    • 1970-01-01
    • 2010-09-24
    • 2014-12-09
    • 2012-01-02
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    相关资源
    最近更新 更多