#java #spring-boot #jar
#java #spring-boot #jar
Вопрос:
У меня есть простое приложение CMD line, которое использует исполняемый файл jar. Я хочу экстернализировать файлы свойств. Согласно документам, я вижу, что это должно быть возможно, но у меня это не работает. У меня следующее…
- root
- target
lib.jar
- src
-test
-resources
*.properties
Я пытаюсь запустить из целевого каталога, например…
java -Dspring.config.location=file:///i:/...../src/test/resources -jar lib.jar PARAM
Я тоже пробовал..
java -Dspring.config.location=file:///i:/...../src/test/resources/ -jar lib.jar PARAM
Приложение довольно простое…
@SpringBootApplication(scanBasePackages = {"my.pkg.*"})
public class Application implements CommandLineRunner {
@Autowired
private MyService service;
public static void main(String[] args){
SpringApplication.run(Application.class, args);
}
@Override
public void run(String... args) throws Exception {
service.doSomething();
}
}
Но когда я запускаю, он не может найти файлы…
Вызвано: java.io.FileNotFoundException: ресурс пути к классу [*.properties] не может быть открыт, поскольку он не существует
Чего мне не хватает, я пробовал другие комбинации для пути к файлу, например
file:i:.....srctestresources -jar lib.jar
Но все равно не повезло. Это потому, что, хотя я знаю, что путь правильный, я не уверен, как Java ожидает его при выходе из Windows.
Ответ №1:
Из документа :
If spring.config.location contains directories (as opposed to files) they should end in / (and will be appended with the names generated from spring.config.name before being loaded).
Комментарии:
1. Добавление косой черты не помогло