2014-12-03 3 views
0

загрузочного пути к классам следующий сценарий:Добавить файл XML в путь к классам с помощью

Я простирающуюся инструмент администратора для системы небольших услуг, скомпилированных в виде работоспособных банки. Эти службы используют xml-конфигурации в своем пути к классам для множества задач.

Теперь я хочу извлечь конфигурационные файлы, такие как конфигурация db, из скомпилированных файлов jar и динамически добавить их в путь к классам. До сих пор вам нужно было перекомпилировать весь пакет, если вы хотите изменить настройки базы данных, и это все виды плохого imho.

То, что я пробовал:
java -Xbootclasspath/p:/path/db.xml java -jar Foo.jar - это приводит к ошибке Java VM - это, кажется, не делать ничего, я пытался найти файл 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

Итак, вы хотите ссылаться на xml-файл в комплекте в банке? Если это возможно, вы можете загружать ресурсы в путь к классам, как описано http://stackoverflow.com/questions/3294196/load-resource-from-anywhere-in-classpath –

+0

Вы не можете использовать -classpath вместе с -jar. edit: и снова аргумент bootclasspath, кажется, не добавляет содержимое jar в мой путь к классам – minime

ответ

0

Я переупаковал xml, и теперь он работает нормально. Извините за ненужную публикацию.

Смежные вопросы