我必须在生产环境中部署一个简单的.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);    

然后用java -jar App.jar /path/to/application.properties来emits .jar..但如果没有其他 Select ,我会的.

推荐答案

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

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

工作完美无瑕.

Java相关问答推荐

最小拓Flutter 排序的时间复杂度是多少?

如何调用Firebase Realtime Database中的子图像列表到android studio中的回收器视图?

使用动态ID从json获取详细信息的Jolt规范

为什么我要创建一个单独的互斥体/锁对象?

Java中是否有某种类型的池可以避免重复最近的算术运算?

计算两个浮点数之间的距离是否对称?

有没有办法让扩展变得多态?

与Spring Boot相关的实体未正确保存

为什么Spring Boot项目无法为基于MySQL的CRUD应用程序找到从JPARepository接口扩展的ProductRepository?

Java中将文本拆分为数字或十进制数字和字符串

解析方法";javax/imageio/metadata/IIOMetadata.getAsTree(Ljava/lang/String;)Lorg/w3c/dom/Node时加载约束冲突

Cordova Android Gradle内部版本组件不兼容

无法将GSON导入到我的JavaFX Maven项目

如何使用MapStrCut转换双向链接

如何在IntelliJ IDEA的Build.sbt中添加外部JAR文件?

为什么mvn编译生命周期阶段不只是编译已更改的java文件?

JavaFX,GridPane:在GridPane的列中生成元素将保持所有列的宽度

在输入端没有可行的替代方案'; Select *';

Jackson YAML:支持锚点扩展/覆盖

Java ModbusRTU写寄存器