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

Using different application.properties in java -jar without Spring

提问人:Marco Frag Delle Monache 提问时间:11/15/2023 最后编辑:NimanthaMarco Frag Delle Monache 更新时间:11/18/2023 访问量:32

问:

我必须在生产环境中部署一个简单的文件。出于安全原因,我无法在 ..jarapplication.properties

我检索属性如下:

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

由于 contains 位于其根目录,因此它将被正确读取。我需要将其外包,我想知道是否有一种方法只需为命令添加参数即可。.jar/application.propertiesapplication.propertiesjava -jar App.jar

我只找到了 Spring 项目(这里)的参数,这些参数不适合我,因为这是普通的 JDBC Java。.jar

我想避免使用文件路径并给出文件路径作为参数,如下所示:FileInputStream

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

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

Java JAR application.properties

评论


答:

0赞 Marco Frag Delle Monache 11/15/2023 #1

我采用的解决方案是使用以下命令复制文件中的外部文件:application.properties.jar

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

完美无缺。