Каков путь к файлам ресурсов в проекте 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
- это имя класса.
Спасибо за вашу помощь, отречься!
Ответы
Ответ 1
Вы не можете загрузить файл прямо так, вам нужно использовать абстракцию ресурса (ресурс может быть не только в файловой системе, но и в любом месте на пути к классу - в файле jar или иначе). Эта абстракция - это то, что вам нужно использовать при загрузке ресурсов. Пути ресурсов относятся к расположению вашего файла класса, поэтому вам нужно добавить косую черту, чтобы добраться до "root":
InputStream in = getClass().getResourceAsStream("/database.properties");