我正在尝试将第三方应用绑定到我们的项目,但发现其属性文件的unix路径已经硬编码到几个类中。可能对其设置进行微小的更改,因此我的问题是:实现此目的的可能(和最快)方法是什么?第三方应用程序既不使用ant也不使用spring,而只使用构建脚本将代码编译为从命令行调用的.jar。
答案 0 :(得分:3)
您可以将属性文件作为资源读取。然后,您只需将包含这些文件的目录放入类路径中。
答案 1 :(得分:1)
你实际上没有说过你想要达到的目标。您的应用程序是否会确定一些路径并通过API将它们传递给第三方应用程序?您环境中的某些内容(例如命令行参数)是否指定了文件的位置?
我首先会重构他们的代码,以便我确定知道任何硬编码字符串都保存在一个定义的位置。所以,例如,如果他们有
readProperties("/usr/thing/propertyFileXxx.txt");
或
static final String PROPERTY_XXX = "/usr/thing/propertyFileXxx.txt";
readProperties(PROPERTY_XXX);
我首先要合并到属性的单个访问者
readProperties(PROPERTY_XXX_ENUM);
所以现在我们有一个明确定义的单一代码,用于确定从何处获取每种类型的属性以及特定的属性类型列表。
然后我们需要一些可控制的方法来定义在运行时使用的属性文件集。我已经使用@tangens建议的想法,将属性作为添加到类路径的特定目录中的资源加载。