如何替换库中的默认属性

时间:2012-01-03 15:28:48

标签: java properties

我正在使用default.properties文件中的默认属性创建库。

private static String defPropertyPath = "/database.properties";

我想问一下这个文件是否可以被使用我的库的程序替换。因此,程序将定义具有相同名称default.properties的属性,这些属性将替换库中的属性。我在程序中创建了default.properties,我使用了库,但是库仍在从它们的包中加载属性。

编辑: 我通过输入流读取属性文件:

  InputStream ins = DbProperties.class.getResourceAsStream(defPropertyPath);
    if (ins == null) {
        logger.error("Can't find properties:" + pathToProperties);
        return;
    }

编辑:文件结构:

DbLibrary.jar
/
/database.properties
/src


MyApplication.jar
/
/database.properties
/src
/lib/DbLibrary.jar

我的应用程序使用DbLibrary.jar并希望强制此库使用MyApplication中的database.properties而不是DbLibrary。

3 个答案:

答案 0 :(得分:1)

如果您的库导出一些允许库的用户随时调用init方法的API,可能会更清楚。

public static void init(Properties p) { ... }

答案 1 :(得分:0)

我不确定是否有足够的信息可以回答您的问题,但我猜测您可能在应用程序的jar中包含了“database.properties”文件。如果您这样做,应用程序将始终从jar中读取文件,而不是从文件系统中读取。

答案 2 :(得分:0)

您只需覆盖包含您的库的这些项目中的属性文件。