Я пытаюсь прочитать файл конфигурации из командной строки. В основном я делаю это:
public static void main(String[] args) {
if(args.length > 0) {
SpringApplication.run(HeliosAdminBackendApplication.class, args);
} else {
System.out.println("Error");
System.exit(0);
}
}
И, следуя этому вопросу , я создал класс MyConfig
, подобный этому:
import lombok.Getter;
@Configuration
@ConfigurationProperties
@PropertySource(value = "file:${ConfigPath}")
public class MyConfig {
@Getter
@Value("${property_name}")
private String myproperty;
}
Затем я создал файл .jar, затем вошел в папку, содержащую jar, и попытался запустить его, выполнив:
java -jar myapp.jar --spring.config.location=file:application.yml
Мой файл application.yml находится в той же папке, что и мой jar. Я также установил путь к C:/my/path/to/folder/
, но ошибка сохраняется. Путь написан неверно? Или я должен что-то добавить / изменить в коде?
РЕДАКТИРОВАТЬ
Полная трассировка стека:
Исключение в потоке "main" java.lang.reflect.InvocationTargetException
в java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native
Метод)
в java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
в java.base / jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
в java.base / java.lang.reflect.Method.invoke (Method.java:566)
в org.springframework.boot.loader.MainMethodRunner.run (MainMethodRunner.java:48)
на org.springframework.boot.loader.Launcher.launch (Launcher.java:87)
на org.springframework.boot.loader.Launcher.launch (Launcher.java:50)
в org.springframework.boot.loader.JarLauncher.main (JarLauncher.java:51)
Вызванный:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed
проанализировать класс конфигурации
[It.sysdata.helios_backend_admin.HeliosAdminBackendApplication];
Вложенное исключение - java.lang.IllegalArgumentException: не удалось
разрешить местозаполнитель 'ConfigPath' в значении "file: $ {ConfigPath}"
в org.springframework.context.annotation.ConfigurationClassParser.parse (ConfigurationClassParser.java:181)
в org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions (ConfigurationClassPostProcessor.java:315)
в org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry (ConfigurationClassPostProcessor.java:232)
в org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors (PostProcessorRegistrationDelegate.java:275)
в org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors (PostProcessorRegistrationDelegate.java:95)
в org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors (AbstractApplicationContext.java:691)
в org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:528)
в org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh (ServletWebServerApplicationContext.java:142)
в org.springframework.boot.SpringApplication.refresh (SpringApplication.java:775)
в org.springframework.boot.SpringApplication.refreshContext (SpringApplication.java:397)
в org.springframework.boot.SpringApplication.run (SpringApplication.java:316)
в org.springframework.boot.SpringApplication.run (SpringApplication.java:1260)
в org.springframework.boot.SpringApplication.run (SpringApplication.java:1248)
at it.sysdata.helios_backend_admin.HeliosAdminBackendApplication.main (HeliosAdminBackendApplication.java:24)
... еще 8 Причина: java.lang.IllegalArgumentException: Не удалось разрешить заполнитель ConfigPath в значении
"файл: $ {ConfigPath}"
в org.springframework.util.PropertyPlaceholderHelper.parseStringValue (PropertyPlaceholderHelper.java:172)
в org.springframework.util.PropertyPlaceholderHelper.replacePlaceholder (PropertyPlaceholderHelper.java:124)в org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders (AbstractPropertyResolver.java:237)
в org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders (AbstractPropertyResolver.java:211)
в org.springframework.core.env.AbstractEnvironment.resolveRequiredPlaceholder (AbstractEnvironment.java:575)
в org.springframework.context.annotation.ConfigurationClassParser.processPropertySource (ConfigurationClassParser.java:450)
в org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass (ConfigurationClassParser.java:271)
в org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass (ConfigurationClassParser.java:242)
в org.springframework.context.annotation.ConfigurationClassParser.parse (ConfigurationClassParser.java:191)
в org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass (ConfigurationClassParser.java:295)
в org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass (ConfigurationClassParser.java:242)
в org.springframework.context.annotation.ConfigurationClassParser.parse (ConfigurationClassParser.java:199)
в org.springframework.context.annotation.ConfigurationClassParser.parse (ConfigurationClassParser.java:167)
... еще 21