没有从jar读取属性文件

时间:2014-08-19 21:44:34

标签: java

我有一个简单的maven项目,它从src / main / resources中读取属性,并在eclipse中运行得非常好,但是当我将这个应用程序导出为可运行的jar时虽然它在构建jar时告诉我Exporting resources/test.properties,除非我在我调用shell脚本的位置包含test.properties文件,否则它会中断。为什么会这样?它在eclipse中如何正常工作?当我查看jar文件内容时,它正好在同一个文件夹中 - 资源,但是命令行不起作用。有什么建议吗?

以下是从文件中读取属性的代码 -

public class Test {
    private static Properties properties = new Properties();

    static{
        InputStream is = null;
        try{
            is = Test.class.getClassLoader().getResourceAsStream("test.properties");
            if(is!=null)
            properties.load(is);
        }catch(Exception e){
            throw new TestException("Unable to load the properties file :" + e.getMessage(), e);
        }finally {
            IOUtils.closeQuietly(is);
        }
    }

    public static String getProperty(String key){
        return properties.getProperty(key);
    }

    public static String getProperty(String key, String defaultValue){
        return properties.getProperty(key, defaultValue);
    }

要获取任何属性,我调用getProperty方法。

1 个答案:

答案 0 :(得分:-1)

哦,对。我认为Eclipse错误地构建了.jar。在maven中,src/main/resources/*中的所有文件都打包到/*,但是你说你的jar文件为/resources/test.propertiesgetResourceAsStream("test.properties")期望根文件夹中的文件,而不是/resources内。这是错的。使用maven构建.jar。