2014-12-03 97 views
0

一个XML文件添加到类路径中的以下情形:通过引导类路径

我延长的编译成可运行罐子小服务系统的管理工具。这些服务在他们的类路径中使用xml配置来执行许多任务。

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

我曾尝试:
java -Xbootclasspath/p:/path/db.xml java -jar Foo.jar - 这导致了Java虚拟机错误 - 这似乎并没有做任何事情,我试图找到通过在classpath下面的脚本的XML文件,但我一直未能。该XML直接位于坛子(带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); 
    } 
} 

我希望有人能帮助解决这个问题,我就还有什么我可以尝试是很笨。

+0

那么你想引用jar里面的xml文件?如果是这样你可以加载类路径中的资源描述http://stackoverflow.com/questions/3294196/load-resource-from-anywhere-in-classpath – 2014-12-03 20:12:02

+0

你不能使用-classpath和-jar一起。编辑:再次,bootclasspath arguemnt似乎并没有将jar的内容添加到我的类路径中 – minime 2014-12-03 20:25:57

回答

0

我已经重新包装了xml,现在看起来工作正常。抱歉无谓张贴。