Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > добавить папку с xml'ями в classpath


Автор: smbd 19.7.2006, 11:06
Здравствуйте!

Вопрос: как добавить в classpath папку с xml файлами?

Есть такая структура каталога:
.\conf
.\lib
.\моиКлассы.jar
run.bat

В run.bat пишу
java –classpath моиКлассы.jar;.\lib\1.jar;.\lib\2.jar;.\conf my.pachage.MainClass

И открыть файл config.xml из папки conf не могу: FileNotFoundException. Поскольку там лежит и конфигурация для сторонних библиотек, задавать путь к моему config.xml решит только его проблему, а сторонние приложения свои конфигурационные файлы не увидят.

Заранее спасибо!

 

Автор: tux 19.7.2006, 11:14
Как сторонние библиотеки будут искать конфигурационные файлы, это зависит от самой библиотеки. А все что лежит в CLASS-PATH можно прочитать как ресурс. Попробуй вот так:
Код

this.getClass().getResource("/config.xml");
 

Автор: smbd 19.7.2006, 11:33
Там просто открывается файл.

Код

File file = new File( "config-1.xml" ) ;


Можно именно в classpath xml'и засунуть?  

Автор: tux 19.7.2006, 11:38
Таким образом
Код

File file = new File( "config-1.xml" );

ты прочитаешь файл config-1.xml в текущем каталоге (в том, откуда запускал приложение). Если тебе это и надо, положи его просто в текущий каталог. Класс java.io.File к CLASS-PATH не имеет никакого отношения. Если xml у тебя будет в CLASS-PATH, то обратиться ты к нему можешь как к ресурсу. А дальше метод работы ни чем не отличается - открываешь поток, читаешь... 

Автор: smbd 19.7.2006, 11:56
Уф-ф, спасибо. Полегчало.  smile 

Чего-то, наверное, в отпуск надо... 

Автор: smbd 19.7.2006, 15:17
О! Вопрос в догонку. Можно ли написать одним разом много jar'ов? Написать - в смысле довабить в classpath. А то их и правда много.


Я попробовал вот так:

java –classpath моиКлассы.jar;.\lib\*.jar;.\conf my.pachage.MainClass

Но не получается. Или их тоже нужно только программно подгружать?  

Автор: tux 19.7.2006, 15:34
Придется перечислять все, по-другому никак. Ну или можно на скриптовом языке оболочки написать скриптик, который будет формировать строку с библиотеками. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)