我正在尝试根据以下代码读取配置文件:
http://www.opencodez.com/java/read-config-file-in-java.htm
所以我发现如果config.cfg与我运行代码的目录位于同一目录,那么一切都很好但是如果配置在不同的目录
example: /path/to/config.cfg
我收到此错误:
java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:418)
at java.util.Properties.load0(Properties.java:337)
at java.util.Properties.load(Properties.java:325)
at packagename.conf.Config.<init>(Config.java:14)
at packagename.conf.Config.main(Config.java:30)
我的猜测是无法找到该文件。 但是如何修改上面的代码以从其他文件夹中读取配置文件? 感谢
编辑:链接中的代码:
import java.util.*;
import java.util.Properties;
public class Config
{
Properties configFile;
public Config()
{
configFile = new java.util.Properties();
try {
configFile.load(this.getClass().getClassLoader().
getResourceAsStream("myapp/config.cfg"));
}catch(Exception eta){
eta.printStackTrace();
}
}
public String getProperty(String key)
{
String value = this.configFile.getProperty(key);
return value;
}
}
答案 0 :(得分:3)
您发布的代码要求配置文件位于类路径上(即,在Java查找.class
文件的相同位置)。因此,您可以在类路径中包含包含配置文件的目录:
java -classpath .:/path/to packagename.conf.Config
否则您可以修改代码以期望配置文件成为常规文件系统文件:
final InputStream cfg = new FileInputStream("/path/to/config.cfg");
try
{ configFile.load(cfg); }
finally
{ cfg.close(); }