当前位置: 技术问答>java相关
资源文件压入 jar 包里就不能用了,怎么解决?
来源: 互联网 发布时间:2017-03-24
本文导语: 比如,我写了一个程序 m.java,编译为 m.class,读取当前路径下的 s.gif 这三个文件都在 c:/dt/ 这个目录下 我在 c:/dt/ 目录下运行 java m,结果正常,可以读出 s.gif 然后我编写 c:/dt/META-INF/MANIFEST.MF 这个文件,只...
比如,我写了一个程序 m.java,编译为 m.class,读取当前路径下的 s.gif
这三个文件都在 c:/dt/ 这个目录下
我在 c:/dt/ 目录下运行 java m,结果正常,可以读出 s.gif
然后我编写 c:/dt/META-INF/MANIFEST.MF 这个文件,只写了这么一行
Main-Class: Mine
然后压缩成 c:/dt.zip
然后我到 c:/ 根目录下执行 java -jar dt.zip
结果其他正常,但就是图片显示不出来,怎么办?
这三个文件都在 c:/dt/ 这个目录下
我在 c:/dt/ 目录下运行 java m,结果正常,可以读出 s.gif
然后我编写 c:/dt/META-INF/MANIFEST.MF 这个文件,只写了这么一行
Main-Class: Mine
然后压缩成 c:/dt.zip
然后我到 c:/ 根目录下执行 java -jar dt.zip
结果其他正常,但就是图片显示不出来,怎么办?
|
份特,和你图片定位有关,比如你使用如下定位方法
image1 = new ImageIcon(test.Frame1.class.getResource("openFile.gif"));
那么图片就和你的类在一起就行了,绝对不会错!
image1 = new ImageIcon(test.Frame1.class.getResource("openFile.gif"));
那么图片就和你的类在一起就行了,绝对不会错!
|
http://expert.csdn.net/Expert/topic/1257/1257512.xml?temp=1.850528E-02
|
MANIFEST.MF
内容改成
Main-Class: m
内容改成
Main-Class: m
|
用什么方法读image的?? 是不是用的绝对路径啊??
jar包中的URL可跟file不同啊
jar包中的URL可跟file不同啊
|
就是用相对路径,不可以用绝对路径,
例如:
可以dt/abc.def
不可以c:dt/abc.def
例如:
可以dt/abc.def
不可以c:dt/abc.def
|
楼上正解 :D