如何使用Eclipse“Export as jar option”使用属性文件构建jar

时间:2012-05-07 05:04:39

标签: java eclipse

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”的My properties文件保存在项目名为“Properties”的文件夹中。

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

You can see the properties folder

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

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

2 个答案:

答案 0 :(得分: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的文件夹,您可以在其中包含所有 属性文件。因为它在罐子外面你可以改变 属性文件在需要时。
  • 改变财产 文件无需解开它。

(或)只是你可以做这个改变而不需要考虑目录结构

  1. 步骤1:将属性文件移至SRC
  2. 第2步:将此行更改为 如下

    InputStream dbin = getClass()。getResourceAsStream(“/ database.properties”);

  3. 这与以前的代码差别不大,因为它始终保留在JAR文件中。

答案 1 :(得分:0)

您正在获取空指针异常,因为未加载属性文件尝试使用 FileInputStream加载属性如下 FileInputStream dbin = new FileInputStream(“/ properties / database.properties”); properties.load(DBIN);