gpt4 book ai didi

java - 避免对属性文件路径规范进行硬编码

转载 作者:行者123 更新时间:2023-12-04 06:11:15 24 4
gpt4 key购买 nike

我在将我的 JAVA 程序使用的属性文件的路径规范与实现本身分离时遇到了一个小问题。
该程序可能部署在具有不同目录结构的多个位置,我不希望将路径规范硬编码到程序代码中。

这是现在存在的情况。

我有一个文件夹服务器/
其中有 2 个包 core/& support/(两者下面都有许多子包)

我之前所做的是,在需要指定属性文件路径的任何地方,我只给出了一个相对路径,即 properties/
在这种情况下,属性文件需要位于您启动程序的任何位置。这在测试期间有效,当我使用手动启动程序时
“ java ”。我会把属性文件夹放在我启动程序的任何地方。
但在实际场景中,该程序将由脚本 (ksh) 自动启动,该脚本由作业按预定时间间隔执行。

在这种情况下,给出相对路径不起作用。我尝试将属性文件放在脚本所在的文件夹中,但这也不起作用。

现在,我必须为每个环境手动指定路径,重新编译代码并为每个环境部署一个单独的副本。
有什么办法可以消除这种耦合,而不管需要将其部署在何处,属性文件都只有一个位置?

最佳答案

使用 System.Properties 条目指定路径,然后在命令行上通过

java -DmyProp=somepath -cp yourclasspath YourClass

在您的应用程序中,您可以使用 System.getProperty("myProp") 检索它,只需确保添加适当的测试并处理未找到属性的情况。

另一种做法是将 props 留在 jar 中,然后使用 LoadResource 加载它们,这样您只需要在每次部署中部署不同的 config jar,但我认为 System.setProperty 方式是最快的。

关于java - 避免对属性文件路径规范进行硬编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7750433/

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