gpt4 book ai didi

java - 如何在 java 运行时解析环境变量

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:23:27 24 4
gpt4 key购买 nike

我的 java 应用程序需要在运行时解析文件路径中的环境变量,文件路径将在属性文件中指定如下如果是 Windows,它将是 %JAVA_HOME%\certs\myselffign.cer如果是 unix,它将是 $JAVA_HOME\certs\myselffign.cer

我的 java 应用程序需要将这些文件路径解析为绝对路径并将证书加载到信任库中。

有什么办法吗?截至目前,我正在检查 os.name ,如果 os.name 是 windows 则模式匹配 %% 并使用 system.getenv ,以防非 windows 寻找 $。

我希望有更好的方法来做到这一点

最佳答案

您可以在属性文件中使用 ${java.home} 的标准 (Java) 模板语法,然后在运行时用 System.getProperty("java.home"); 的值替换它;。所以在你的文件中而不是:

certificate=%JAVA_HOME%\certs\myselffign.cer (Windows)
certificate=$JAVA_HOME\certs\myselffign.cer (*nix)

只需使用一个标准:

certificate=${java.home}/certs/myselfsign.cer

然后在代码中做类似的事情:

String javaHomePath = System.getProperty("java.home")l
Properties props = Properties.load( ...);
String certFilePath = props.get("certificate");
certFilePath = certFilePath.replaceAll("${java.home}", javaHomePath);

请注意,使用标准模板语法还允许您使用一些开源属性替换工具。像 Spring PropertyResolver。希望对您有所帮助。

关于java - 如何在 java 运行时解析环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9239932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com