我建的某一个java project的目录结构如下HttpTimerTask
--src
--HttpTimerTask.java
--config.properties访问代码是
HttpTimerTask.class.getClassLoader().getResourceAsStream("config.properties")如果我要改变目录结构成:把配置文件改成src同级别HttpTimerTask
--src
--HttpTimerTask.java
--config.properties然后怎么去修改访问代码呢,各位大侠,多多指教
--src
--HttpTimerTask.java
--config.properties访问代码是
HttpTimerTask.class.getClassLoader().getResourceAsStream("config.properties")如果我要改变目录结构成:把配置文件改成src同级别HttpTimerTask
--src
--HttpTimerTask.java
--config.properties然后怎么去修改访问代码呢,各位大侠,多多指教
HttpTimerTask
----src
--------HttpTimerTask.java
--------config.properties想变成
HttpTimerTask
----src
--------HttpTimerTask.java
----config.properties改成这样后,如何修改访问下面这个配置文件的代码
String path = userDir + File.separator + "config.properties";
File file = new File(path);
FileInputStream fis = new FileInputStream(file);
props.load(fis);
像這種是按相對路徑的方式在class loader的搜索範圍內進行搜索
嘗試這樣
"../config.properties"
或者某種絕對路徑的方式比如:
"/com/mindprod/mypackage/mystuff.ser"
public URL getResource(String name) {
URL url;
if (parent != null) {
url = parent.getResource(name);
} else {
url = getBootstrapResource(name);
}
if (url == null) {
url = findResource(name);
}
return url;
}如果一定要通过getResource方式的话,可能可以通过自建ClassLoader并覆写findResource方法来实现(没实际测试过)
InputStream is = CustomClassLoader.class.getResourceAsStream("AbsolutePath/user.dir");