我有一个简单的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方法。
答案 0 :(得分:-1)
哦,对。我认为Eclipse错误地构建了.jar。在maven中,src/main/resources/*
中的所有文件都打包到/*
,但是你说你的jar文件为/resources/test.properties
,getResourceAsStream("test.properties")
期望根文件夹中的文件,而不是/resources
内。这是错的。使用maven构建.jar。