0
public xFbConfigReader()
{

    //props = new Properties();
    propsdatabase = new Properties();

    try 
    {
        // load a properties file
        InputStream dbin = getClass().getResourceAsStream("/properties/database.properties");


        propsdatabase.load(dbin);

    } 
    catch (IOException ex) 
    {
        ex.printStackTrace();
    }

}

我将名为“Database.properties”的属性文件保存在项目名为“Properties”的文件夹中。

当我在 Eclipse 中导出为 jar 时。属性文件夹可见。

你可以看到属性文件夹

但是当我运行程序时,它显示 dbin 中有一个 NUll 点异常。

所以这意味着我需要在 Eclipse 中形成一个 jar 的正确方法。请建议。

4

2 回答 2

1

处理属性文件时更好的解决方案是读取

static Properties databaseproperties= new Properties();
    static {
        try {
            connectionProps.load(YourClassName.class.getClassLoader()
                    .getResourceAsStream("databaseproperties.properties"));
        } catch (Exception e) {
            System.out.println("Exception is " + e.getMessage());
        }
    }

这是更好的方法,因为

  • 我们可以将我们的属性文件移动到其他文件夹。
  • 事实上,我们可以将属性文件夹保留在 jar 之外。假设您可以创建一个名为 Configuration 的文件夹,您可以在其中包含所有属性文件。由于它在 jar 之外,因此您可以在需要时更改属性文件。
  • 对于属性文件的更改,无需解压缩它。

(或)只需您可以进行此更改而无需考虑目录结构

  1. 第 1 步:将属性文件移动到 SRC
  2. 第2步:更改此行如下

    InputStream dbin = getClass().getResourceAsStream("/database.properties");

这与以前的代码没有太大区别,因为它仍然保留在 JAR 文件中。

于 2012-05-07T05:15:11.487 回答
0

您收到空指针异常,因为未加载属性文件尝试使用 FileInputStream 加载属性,如下所示 FileInputStream dbin = new FileInputStream("/properties/database.properties"); 属性.load(dbin);

于 2012-05-07T05:17:38.053 回答