我们希望将.properties文件放在jar外面,以便我们可以更改模块中使用的属性,而不必重新安装模块。Java:如何将jar外的.properties文件包含到classpath中?
在Java 8之前,我们使用下面的方式运行脚本并包含.properties文件,它工作正常。但是自从我们更新到Java 8以来,这种在classpath中包含.properties文件的方式不起作用,这意味着java程序无法找到.properties文件。
我的脚本运行Java项目:
/usr/java/latest/bin/java -d64 -Xms1G -Xmx16G -XX:MaxPermSize=128m -XX:-UseGCOverheadLimit -cp "/online/sand/lib/client-api-1.0.0.jar:/online/sand/oap_pub/lib/*:/online/sand/oap/oap_dw/run/client_api/application.properties" team.online.client.api.MasterProcessor | tee -a client_api.log
我们使用自旋微观语境拿起属性文件是这样的:
<util:properties id="app_props"
location="classpath*:/application.properties" />
然后在属性appilcation.properties文件正在使用(在许多不同的文件中):
@Value("#{app_props[\"SERVICE_PATH_GET_METADATA\"]?:''}")
private String metadataServicePath;
寻找一种方法将jar文件和classpath中的.properties文件保存起来,以便Spring上下文找到该文件。
是他们使用其他方式吗?我们需要保留从罐子排除的属性文件
class.getClassLoader().getResourceAsStream("application.properties");
在此先感谢。