以下场景:
我正在为编译为可运行 jar 的小型服务系统扩展管理工具。这些服务在其类路径中使用 xml 配置来完成大量任务。
我现在想从已编译的 jar 文件中提取 db 配置等配置文件,并将它们动态添加到类路径中。到目前为止,如果您想更改数据库的设置,您需要重新编译整个套件,这是各种糟糕的恕我直言。
我已经尝试过:
java -Xbootclasspath/p:/path/db.xml java -jar Foo.jar
- 这会导致 java vm 错误
java -Xbootclasspath/p:/path/db.jar java -jar Foo.jar
- 这似乎没有任何作用,我试图通过类路径中的下面的脚本找到 xml 文件,但我无法做到。xml 直接位于 jar 内(使用创建jar cvMf db.jar db.xml
)
我使用的脚本:
ZipFile zf;
ZipFile zf;
try{
zf = new ZipFile("Foo.jar");
} catch(final ZipException e){
throw new Error(e);
} catch(final IOException e){
throw new Error(e);
}
final Enumeration e = zf.entries();
while(e.hasMoreElements()){
final ZipEntry ze = (ZipEntry) e.nextElement();
final String fileName = ze.getName();
final boolean accept = Pattern.compile(".*(xml)").matcher(fileName).matches();
if(accept){
log.debug(fileName);
}
}
我希望有人可以帮助解决这个问题,我对我还能尝试什么一无所知。