当前位置: 技术问答>java相关
怎么设置jar的资源路径?
来源: 互联网 发布时间:2015-08-22
本文导语: InputStream is = getClass().getResourceAsStream("config.properties"); 上面这句话我的程序在没打包之间访问当前路径下的配置文件一切正常,打成jar后我希望配置文件“config.properties”能够放在jar外,但是我的程序看起来只在jar包...
InputStream is = getClass().getResourceAsStream("config.properties");
上面这句话我的程序在没打包之间访问当前路径下的配置文件一切正常,打成jar后我希望配置文件“config.properties”能够放在jar外,但是我的程序看起来只在jar包里查找。我该在哪里做些设置或是改动程序?我想如果用绝对路径应该可以解决问题,但是getResourceAsStream好像不支持绝对路径。
请高手指点。
上面这句话我的程序在没打包之间访问当前路径下的配置文件一切正常,打成jar后我希望配置文件“config.properties”能够放在jar外,但是我的程序看起来只在jar包里查找。我该在哪里做些设置或是改动程序?我想如果用绝对路径应该可以解决问题,但是getResourceAsStream好像不支持绝对路径。
请高手指点。
|
用这个肯定能行!
private void init() {
FileInputStream is=null;
try{
if(System.getProperty("file.separator").equals("/"))
is= new FileInputStream("./mo_config/db.properties");
else
is= new FileInputStream(".\mo_config\db.properties");
}catch(FileNotFoundException e){
System.out.println("File db.properties not found");
}
Properties dbProps = new Properties();
try {
dbProps.load(is);
}
catch (Exception e) {
System.err.println("Can't read the properties file. " +
"Make sure db.properties is in the CLASSPATH");
return;
}
logFile = dbProps.getProperty("logFile", "DBConnectionManager.log");
}
|
你把config.properties放在Jar包外,那你怎么发布你的程序呢?
如果你不放在Jar包里,就需要设置ClassPath.
如果你不放在Jar包里,就需要设置ClassPath.
|
properties都需要放在classpath中才能被调到,
比如你的jar路径是 ..WEB-INFlib
那么你的properties文件需放在..WEB-INFclasses中。
比如你的jar路径是 ..WEB-INFlib
那么你的properties文件需放在..WEB-INFclasses中。