Я создаю приложение Spring Boot, по деловой причине мне нужно импортировать сторонний jar, который также считывает некоторый параметр конфигурации из файла с именем application.properties .
I определили все конфиги, необходимые для моего приложения и стороннего фляги в файле весенней загрузки application.properties .
Когда я запускаю это приложение из Eclipse, все хорошо, но когда я запускаю он извне с помощью команды, код внутри jar не может найти файл application.properties и выдает исключение;
java -jar myapp.jar
, когда я изменяю его на следующую команду и поместив файл application.properties вне фляги, он работает;
java -Xbootclasspath/a: -jar myapp.jar
Как заставить его работать без размещения приложения . свойства файл вне банки?
некоторая дополнительная информация; Jar третьей стороны - это библиотека lib, включенная в мою зависимость от maven. Внутри стороннего кода есть место, где он загружает application.properties файл, но выдает исключение.
Properties cfg = new Properties();
FileInputStream is = null;
URL url = DemoApplication.class.getResource("/");
if (null != url) {
String configPath = url.getFile()+ "application.properties";
try {
is = new FileInputStream(configPath);
cfg.load(is); // It fails here
} catch (IOException e) {
e.printStackTrace();
}
}
Исключение:
file:/D:/Temp/target/myapp.jar!/BOOT-INF/classes!/application.properties FAILED load config.java.io.FileNotFoundException: file:\D:\Temp\target\myapp.jar!\BOOT-INF\classes!\application.properties (The filename, directory name, or volume label syntax is incorrect)