【问题标题】:get values from jboss property file从 jboss 属性文件中获取值
【发布时间】:2018-01-23 11:15:48
【问题描述】:
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”中的属性文件

【问题讨论】:

    标签: java jboss jbossfuse


    【解决方案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");
    

    注意,如果你改变了项目的结构,你应该记得注意路径仍然是正确的

    【讨论】:

    • 是的,我的主类在 src/main/java,prop 文件在 src/main/resources
    • 当我添加该代码时,它要求我将库添加到 main 说 import (org,apche,camel),(org,apche,camel,main )... 等等
    • 导入是 import java.io.*;导入 java.util.Properties;如果你的主要 src/main/java 和你的道具是 src/main/resources 你应该这样做: InputStream is = Main.class.getResourceAsStream("../resources /app.properties");
    【解决方案2】:

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

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

    【讨论】:

    • 您需要文件的绝对路径并使用new FileInputStream("<PATH_TO_FILE>") 加载它。如果您的路径在 JBoss 系统属性中可用,您可以使用 System.getProperty("jboss.server.base.dir"); 加载路径(例如 jboss/server 路径)
    猜你喜欢
    • 2013-02-08
    • 2020-08-18
    • 2013-05-07
    • 1970-01-01
    • 2023-01-10
    • 1970-01-01
    • 2014-01-27
    • 2014-01-19
    • 1970-01-01
    相关资源
    最近更新 更多