java - 如何将变量传递给 .property 文件中引用的 JVM?

标签 java variables junit intellij-idea

我的 .properties 文件中有以下内容:

connection1.username=${cloud.db.username}
connection1.password=${cloud.db.password}

我想在运行/调试配置中传递这些变量

我以为我需要做的就是在 JVM 命令行中传递以下参数:-Dcloud.db.username=JOHN -Dcloud.db.password=SECRET

但在代码中调用 Properties.getProperty() 仍然返回 ${cloud.db.username}

我在 IntelliJ IDEA 下将其作为 junit 运行。

最佳答案

使用 -D 将属性传递到 jvm 中会将它们放入系统属性中(通过 System.getProperties() 访问)。

在代码中从文件创建 java.util.Properties 可为您提供一组完全独立的属性。

许多应用程序允许您通过命令行 -D 选项和在文件中指定属性。为此,他们必须在两者之间实现某种回退机制,并决定优先选择哪一个。

此外,一些应用程序允许您将一个属性定义为另一个属性,它们通常通过扩展或包装 java.util.Properties 来实现。

您希望这两种方法都能正常工作,但 Java 都没有开箱即用。

如果您想实现这些功能,请查看一些支持它们的开源项目。

关于java - 如何将变量传递给 .property 文件中引用的 JVM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11804008/

相关文章:

java - 这种声明的类型是什么?

python - 更改变量值时的 PyQt 事件

javascript - 避免从浏览器控制台修改 Javascript 变量

java - cucumber 异常 : java. lang.ClassNotFoundException : cucumber. io.ResourceLoader

java - 如何在安全管理器策略文件中为可变父目录授予文件读/写权限

java - JOGL drawArrays JRE错误

Java JTable TableModel addRow 没有变化

php - 在 mysql_query 字符串中使用 PHP 变量

java - 使 "Programming in Scala"junit 示例在 IntelliJ 中工作时出现问题

java - Maven 无法在 : 中找到 Javac 编译器