До тех пор, пока не модулярная java, вы просто поместите файл в src/main/java/resources
, убедитесь, что он находится в пути к классам, а затем загрузите его с помощью
file = getClass().getClassLoader().getResourceAsStream("myfilename");
из почти любого места в пути к классам.
Теперь с модулями сюжет сгущается.
Моя настройка проекта следующая:
module playground.api {
requires java.base;
requires java.logging;
requires framework.core;
}
Файл конфигурации помещается внутри src/main/resources/config.yml
.
Проект выполняется с помощью
java -p target/classes:target/dependency -m framework.core/com.framework.Main
Поскольку основной класс не находится в моем собственном проекте, но во внешнем модуле рамки он не может видеть config.yml
. Теперь вопрос в том, есть способ каким-то образом положить мой файл конфигурации в модуль или открыть его? Должен ли я изменить способ загрузки файла фреймворком вверх по течению?
Я попытался использовать "export" или "opens" в модуле info, но он хочет иметь имя пакета, а не имя папки.
Как добиться этого наилучшим образом, чтобы он работал как на Java 8 и с минимальными изменениями?