在 Jar 中为类路径上的外部文件@PropertySource
2022-09-04 06:40:30
我试图在Jar中使用Spring框架的注释从Jar外部加载属性文件,但它没有找到该文件。@PropertySource
我需要属性文件位于Jar的外部,以便可以对其进行编辑。我不知道文件的确切位置,我想我可以在类路径上的任何位置都有它。
我在我的课堂上使用以下注释。Config
@PropertySource('classpath:stc.properties')
并放置在与创建的Jar文件相同的目录中。我尝试在命令中显式指定类路径,但它仍然找不到该文件:stc.properties
java
java -cp . -jar stc.jar
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Failed to load bean class: com.example.stc.Config; nested exception is java.io.FileNotFoundException: class path resource [stc.properties] cannot be opened because it does not exist
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:162)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:299)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:243)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:254)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:94)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:609)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
[...]
等。
我也尝试过使用作为类路径,并尝试在jar的清单的属性中指定类路径(具有两个变体),但它总是给出相同的结果。./
Class-Path