从Java中的不同项目中的属性文件中提取值

时间:2018-01-10 17:30:05

标签: java file properties

正如标题所示,我想要的是从给定密钥的属性文件中提取特定值。 我做了它,它的工作原理,但问题是我正在以绝对路径读取文件。所以这不适用于生产环境。

属性文件位于另一个项目上,与我尝试阅读的项目不同。

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

project structure

所有项目都是相互关联的。

注意:我正在使用struts 1框架使用Java 1.4。

0 个答案:

没有答案