Java Project 打成jar包后 如何读取配置文件

jixl0224 2010-02-05 04:06:42
写了一个Java Project,其中用到了资源文件,打成jar包后,总是说找不到资源文件,怎么办?希望懂得朋友给个建议~!
...全文
1531 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
SambaGao 2010-02-06
  • 打赏
  • 举报
回复
google
xiaotugege 2010-02-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gardner2010 的回复:]
InputStream in = XXX.class.getClassLoader().getResourceAsStream("XXX.properties");
这种方式加载类路径下的资源文件
要把资源文件放到类路径中

方法很多,我最喜欢这种。
[/Quote]
这种做法如果换到类加载机制是委托的。就是一出悲剧了。

[Quote=引用楼主 jixl0224 的回复:]
写了一个Java Project,其中用到了资源文件,打成jar包后,总是说找不到资源文件,怎么办?希望懂得朋友给个建议~!
[/Quote]
首先楼主应该明白jar包中的资源,要生存一个file对象是不可能地。最好的情况就能取个inputstream,我想这基本就可以解决你的问题。
下面是取sqlserver中msbase.jar的META-INF/MANIFEST.MF文件。

InputStream is = Test.class.getResourceAsStream("/META-INF/MANIFEST.MF");
int i = 0;
byte[] buff = new byte[1024];
while((i=is.read(buff))>0)
{
System.out.println(new String(buff,0,i));
}
is.close();

Test类指代classpath中任意类jar包中的也可以。但是需要注意地是你jar包中的配置文件,必须是唯一命名。不能和项目中的任意文件重名,包括jar包中的文件。
crazylaa 2010-02-06
  • 打赏
  • 举报
回复
路径问题
qianzhimeiying 2010-02-05
  • 打赏
  • 举报
回复
如果不希望把配置文件之类的打到jar里,那么用
String sPath= System.getProperty("user.dir");
然后配置文件的路径为
String filepath = "file:///"+sPath+"\\xxxx.xxx";
wenziaiqiner 2010-02-05
  • 打赏
  • 举报
回复
把路径改成绝对路径,应该就可以了
haoren_e 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bayougeng 的回复:]
把资源文件放到源文件目录。
编译后再打包。
[/Quote]
学习
yueguangkai001 2010-02-05
  • 打赏
  • 举报
回复
不建议将资源文件也打包到JAR中
bayougeng 2010-02-05
  • 打赏
  • 举报
回复
把资源文件放到源文件目录。
编译后再打包。
小贝壳666 2010-02-05
  • 打赏
  • 举报
回复
InputStream in = XXX.class.getClassLoader().getResourceAsStream("XXX.properties");
这种方式加载类路径下的资源文件
要把资源文件放到类路径中

方法很多,我最喜欢这种。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧