通过bootclasspath将xml文件添加到classpath

时间:2014-12-03 20:08:29

标签: java jar bootclasspath

以下情形:

我正在为一个编译为runnable jar的小型服务系统扩展一个管理工具。这些服务在其类路径中使用xml配置来执行大量任务。

我现在想从已编译的jar文件中提取db配置等配置文件,并将它们动态添加到类路径中。到目前为止,如果你想更改数据库的设置,你需要重新编译整个套件,这是各种不好的imho。

我的尝试:
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);
    }
}

我希望有人可以帮助解决这个问题,我对我还能尝试的其他方法毫无头绪。

1 个答案:

答案 0 :(得分:0)

我已经重新打包了xml,现在它似乎工作正常。抱歉不必要的发帖。