Подтвердить что ты не робот

Каков путь к файлам ресурсов в проекте Maven?

В моем проекте Maven у меня есть следующий код в основном методе:

FileInputStream in = new FileInputStream("database.properties");

но всегда получайте ошибку, не найденную в файле.

Я поместил файл в src/main/resources и правильно скопирован в каталог target/classes (я считаю, что это ожидаемое поведение для ресурсов Maven), но при фактическом запуске программы кажется, что он никогда не сможет найти файл. Я пробовал другие пути:

FileInputStream in = new FileInputStream("./database.properties");
FileInputStream in = new FileInputStream("resources/database.properties");

и т.д.. но ничего не работает.

Итак, каков правильный путь использования?


Основываясь на ответе "disown's" ниже, вот что мне нужно:

InputStream in = TestDB.class.getResourceAsStream("/database.properties")

где TestDB - это имя класса.

Спасибо за вашу помощь, отречься!

4b9b3361

Ответ 1

Вы не можете загрузить файл прямо так, вам нужно использовать абстракцию ресурса (ресурс может быть не только в файловой системе, но и в любом месте на пути к классу - в файле jar или иначе). Эта абстракция - это то, что вам нужно использовать при загрузке ресурсов. Пути ресурсов относятся к расположению вашего файла класса, поэтому вам нужно добавить косую черту, чтобы добраться до "root":

InputStream in = getClass().getResourceAsStream("/database.properties");