我們希望將.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");
在此先感謝。