gpt4 book ai didi

java - 在类路径上添加属性文件

转载 作者:搜寻专家 更新时间:2023-10-31 19:37:34 26 4
gpt4 key购买 nike

我正在构建一个基于 Spring Boot 的 Spring 独立应用程序。我希望此应用程序从单独目录中的 jar 文件外部的属性文件中读取其属性。构建的应用程序的结构如下所示

testApplication
├── test-1.0-SNAPSHOT.jar
├── lib
│ └── <dependencies are here>
└── conf
└── application.properties

我想在类路径上加载 application.properties 文件,这样我就可以在我的应用程序中读取。是否可以?因为当我像这样运行我的 jar 文件时(在 Windows 上):

java -cp "./*;lib/*;conf/*" com.myapp.Test

我得到以下异常:

Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.myapp.Test]; nested exception is java.io.FileNotFoundException: class path resource [application.properties] cannot be opened because it does not exist
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:180)
...
Caused by: java.io.FileNotFoundException: class path resource [application.properties] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172)

我尝试通过这个类注解从应用程序中读取文件:

@PropertySource("classpath:application.properties")

Java文档没有提到,可以在类路径中加载非jar文件,但是如果这个application.properties在jar文件test-1.0-SNAPSHOT.jar中,那么可以通过这种方式访问​​。

是否可以将外部非 jar 文件放在类路径中?我知道我不一定在类路径上有文件,我可以通过不同的方式访问它,但我仍然很好奇它是否可能。

最佳答案

尝试

java -cp "./*;lib/*;conf" com.myapp.Test

Asterix (*) 用于查找所有 JAR 而不是类。

关于java - 在类路径上添加属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34857705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com