我目前正面临以下大问题:
我有一个Framework-Project(maven),其中包含一个PropertyReader(在同一个包中读取“config.properties”并返回其值):
这是Framework-Project:
public class PropertyReaderFramework {
private static Properties props;
private static void init(){
String filename = "com/ks/framework/properties/config.properties";
InputStream input = PropertyReaderFramework.class.getClassLoader()
.getResourceAsStream(filename);
if (input == null) {
System.out.println("Sorry, unable to find " + filename);
props = null;
} else {
props = new Properties();
}
try {
props.load(input);
} catch (IOException e) {
e.printStackTrace();
}
}
public static String getProperty(String key){
if(props == null) init();
return props.getProperty(key);
}
public static Properties getProperties(){
if(props == null) init();
return props;
}
}
我的主项目,我需要属性文件的信息只有一个类(用于演示):
package testmsg;
import com.ks.framework.properties.PropertyReaderFramework;
public class main {
public static void main(String[] args) throws InterruptedException {
try {
String basepath = PropertyReaderFramework.getProperty("remoteFileAccess.script.location");
System.out.println(basepath);
} catch (Exception e) {
e.printStackTrace();
} finally {
Thread.sleep(5000);
}
}
}
有趣的是,如果我在eclipse中执行main()类,它会正确地从属性中读取值。
但是当我将其导出为可运行的JAR时,它会引发我的错误:
任何人都可以帮我解决这个问题吗?我无法弄清楚为什么它会像那样......