добавление относительного каталога в путь к классам Java и использование ClassLoader (). getResourceAsStream ("") - PullRequest
5 голосов
/ 09 мая 2009

Можно ли добавить относительный каталог (например, foo / bar / plugh) в путь к классам Java и использовать

InputStream in = getClassLoader().getResourceAsStream("xyzzy.properties");

Чтобы получить foo / bar / plugh / xyzzy.properties?

Мой classpath выглядит так:

foo.jar;foo/bar/plugh;xyz.jar 

И я могу использовать классы и ресурсы из jar-файлов foo и xyz, но не из каталога plugh. В этих случаях in всегда равно нулю.

Я не могу заставить это работать, и я не уверен, что это просто не поддерживается, я пропускаю что-то тонкое или я делаю что-то не так Нужно ли использовать абсолютный путь?

1 Ответ

6 голосов
/ 09 мая 2009

Может быть, я неправильно понимаю, что вы пытаетесь сделать, но если у вас есть папка в вашем classpath, это означает, что все файлы под ней также должны быть в classpath. Если нет, вы всегда можете передать каждый файл .properties в путь к классу.

Но в любом случае, поскольку файл / папка, в которой находится файл, находится в пути к классам, вы должны просто выполнить:

InputStream in = new FileInputStream("classpath:xyz.properties")

И поскольку "foo / bar / plugh" находится в пути к классам, одно из мест, где он будет искать xyz.properties, находится в "foo / bar / plugh".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...