我正在使用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。
答案 0 :(得分:1)
如果您的库导出一些允许库的用户随时调用init方法的API,可能会更清楚。
public static void init(Properties p) { ... }
答案 1 :(得分:0)
我不确定是否有足够的信息可以回答您的问题,但我猜测您可能在应用程序的jar中包含了“database.properties”文件。如果您这样做,应用程序将始终从jar中读取文件,而不是从文件系统中读取。
答案 2 :(得分:0)
您只需覆盖包含您的库的这些项目中的属性文件。