在没有Spring的情况下在java -jar中使用不同的application.properties

问题描述 投票:0回答:1

我必须在生产环境中部署一个简单的

.jar
文件。出于安全原因,我无法在
application.properties
中写入生产凭据。

我像这样检索属性:

Properties properties = new Properties();
InputStream is = PropertiesLoader.class.getResourceAsStream("/application.properties");
properties.load(is);

由于

.jar
在其根目录包含
/application.properties
,因此将正确读取。我需要外包这个
application.properties
,我想知道是否有一种方法只需为
java -jar App.jar
命令添加参数即可。

我只找到了 Spring 项目的参数(here),这些参数不适合我,因为这个

.jar
是普通的 JDBC Java。

我想避免使用

FileInputStream
并将文件路径作为参数,如下所示:

Properties properties = new Properties();
String applicationPropertiesPath = args[0];
FileInputStream fis = new FileInputStream(applicationPropertiesPath);
properties.load(fis);    

然后用

.jar
启动
java -jar App.jar /path/to/application.properties
..但如果没有其他选择,我会的。

java jar application.properties
1个回答
0
投票

我采用的解决方案是使用以下命令将外部

application.properties
复制到
.jar
文件内:

jar uf App.jar /path/to/application.properties

工作完美。

© www.soinside.com 2019 - 2024. All rights reserved.