从jboss属性文件中获取值

时间:2018-01-23 11:15:49

标签: java jboss jbossfuse

protected void sss()
{ 

    //InputStream is = this.getClass().getClassLoader().getResourceAsStream("src/main/resources/OSGI-INF/app.properties");

    try(FileReader reader=new FileReader("src/main/resources/OSGI-INF/app.properties")){
    Properties pro=new Properties();
            pro.load(reader);
            String url=pro.getProperty("ConfirmProductMasterDataStatus");
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();    
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }   
}

我想访问位于" src / main / resources / OSGI-INF / app.properties "的属性文件。

2 个答案:

答案 0 :(得分:1)

如果您的Class与属性文件位于同一文件夹中,则可以这样做:

    InputStream is = MyClass.class.getResourceAsStream("app.properties.properties");
    Properties pro=new Properties();
    try {
        pro.load(is);
    } catch (IOException e) {
        e.printStackTrace();
    }
    String url=pro.getProperty("ConfirmProductMasterDataStatus");

在不了解项目结构的情况下,我很难给你一个更通用的结构 我猜您的Main位于src / main,所以你可以这样做:

    InputStream is = Main.class.getResourceAsStream("resources/OSGI-INF/app.properties");
    Properties pro=new Properties();
    try {
        pro.load(is);
    } catch (IOException e) {
        e.printStackTrace();
    }
    String url=pro.getProperty("ConfirmProductMasterDataStatus");

请注意,如果更改项目的结构,则应记住注意路径仍然正确

答案 1 :(得分:0)

您应该可以使用类路径路径加载它:

InputStream is = this.getClass().getClassLoader().getResourceAsStream("OSGI-INF/app.properties");
Properties pro=new Properties();
pro.load(reader);