正如标题所示,我想要的是从给定密钥的属性文件中提取特定值。 我做了它,它的工作原理,但问题是我正在以绝对路径读取文件。所以这不适用于生产环境。
属性文件位于另一个项目上,与我尝试阅读的项目不同。
LinkedList reasonOptionsList = new LinkedList(stopChecksPaymentsOrderFormPreview.getStopPaymentReasonCol());
Properties pro = new Properties();
String optReasonKey = ((EnumerationValue) reasonOptionsList.get(Integer.parseInt(stopChecksPaymentsOrderFormPreview.getStopPaymentReasonSelected())-1)).getMsgCode();
String parsedReason = "";
try{
File file = new File("D:\\pbworkspace\\PBBogota\\bundles\\com\\ath\\psj\\web\\common\\messages\\pb\\Messages-Resources.properties");
FileInputStream fis = new FileInputStream(file.getAbsolutePath());
pro.load(fis);
parsedReason = pro.getProperty("stopPaymentOrder.".concat(optReasonKey));
} catch(IOException e) {
TraceUtility.catching(CLASS_NAME, "ERROR:", TRACE_TAG, e);
logger.error("Ha ocurrido un error al consultar el archivo properties " + e);
}
有没有办法在不依赖绝对路径的情况下访问文件?因为这可能会在另一台机器或生产环境中发生变化。
它可能不在D中:所有项目都在PBBogota文件夹中,属性文件属于bundle,而调用类属于pb
所有项目都是相互关联的。
注意:我正在使用struts 1框架使用Java 1.4。