【问题标题】:How to build jar using Eclipse "Export as jar option" with a properties file如何使用带有属性文件的 Eclipse“导出为 jar 选项”构建 jar
【发布时间】:2012-05-07 14:04:08
【问题描述】:
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 的正确方法。请建议。

【问题讨论】:

  • 尝试从“/properties/database.properties”中删除前导“/”。检查程序执行的路径。
  • 尝试使用neabean IDE,它是 Java 开发人员的绝佳工具
  • @TJ 这样也行不通
  • @Mayank .. 我一定会尝试使用 Netbeans。但我需要一个针对当前情况的解决方案。

标签: java eclipse


【解决方案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 的文件夹,您可以在其中包含所有 属性文件。因为它在罐子的外面,你可以改变 需要时使用属性文件。
  • 用于更改属性 文件无需解压。

(OR) 无需考虑目录结构即可进行此更改

  1. 第 1 步:将属性文件移动到 SRC
  2. 第 2 步:将此行更改为 关注

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 是的,我明白这一点。但是如果你在附加的图片中观察到提取的 jar 文件的树结构。尽管您可以看到属性文件夹存在,但该文件未加载。
    猜你喜欢
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    • 2012-05-22
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    相关资源
    最近更新 更多