当前位置: 技术问答>java相关
为什么我的图片不能显示?(急!!!在线等待,请指教)
来源: 互联网 发布时间:2015-08-21
本文导语: 问题是这样的: ImageIcon m_objIcon0 = new ImageIcon("gif//F02ep1.gif"); ComMod.setIcon(m_objIcon0_1); //ComMod是Button 我打包到Moon.jar,我看过了,图片已经打进包里了. 我将Moon.jar 拷贝到d: 然后我是这样运行的: c:java -jar d:Moon.jar ...
问题是这样的:
ImageIcon m_objIcon0 = new ImageIcon("gif//F02ep1.gif");
ComMod.setIcon(m_objIcon0_1); //ComMod是Button
我打包到Moon.jar,我看过了,图片已经打进包里了.
我将Moon.jar 拷贝到d:
然后我是这样运行的:
c:java -jar d:Moon.jar
运行时ComMod上没有图片显示
但是我这样一来运行图片却可以显示的
d:java -jar Moon.jar
这到底是为什么?是不是与当前的路径有关系?
不知道各位遇到类似的问题吗?
请指教!
ImageIcon m_objIcon0 = new ImageIcon("gif//F02ep1.gif");
ComMod.setIcon(m_objIcon0_1); //ComMod是Button
我打包到Moon.jar,我看过了,图片已经打进包里了.
我将Moon.jar 拷贝到d:
然后我是这样运行的:
c:java -jar d:Moon.jar
运行时ComMod上没有图片显示
但是我这样一来运行图片却可以显示的
d:java -jar Moon.jar
这到底是为什么?是不是与当前的路径有关系?
不知道各位遇到类似的问题吗?
请指教!
|
错了,重发
to telenths(非法操作)
> URL url = getClass().getResource("/img/aaa.jpg");
^^^^^^^^^^^^^^
getClass().getResource()是相对路径,一般不写开头的“/”
> ImageIcon ico = new ImageIcon(getToolkit().getImage(url));
ImageIcon还有个构造方法 ImageIcon (URL url);
所以应该这样:
ImageIcon ico = new ImageIcon(ClassLoader.getSystemResource("gif/F02ep1.gif");
to 楼主:
一旦打包后,就不能再用本地文件系统的路径了,必须用资源URL定位包中的文件。
to telenths(非法操作)
> URL url = getClass().getResource("/img/aaa.jpg");
^^^^^^^^^^^^^^
getClass().getResource()是相对路径,一般不写开头的“/”
> ImageIcon ico = new ImageIcon(getToolkit().getImage(url));
ImageIcon还有个构造方法 ImageIcon (URL url);
所以应该这样:
ImageIcon ico = new ImageIcon(ClassLoader.getSystemResource("gif/F02ep1.gif");
to 楼主:
一旦打包后,就不能再用本地文件系统的路径了,必须用资源URL定位包中的文件。
|
现在公布答案
URL url = getClass().getResource("/img/aaa.jpg");
ImageIcon ico = new ImageIcon(getToolkit().getImage(url));
URL url = getClass().getResource("/img/aaa.jpg");
ImageIcon ico = new ImageIcon(getToolkit().getImage(url));
|
可能和你的classpath有关,你加个.;试试
|
必须将图片放在包中的目录gif下。
|
new ImageIcon("gif//F02ep1.gif");
有这样指定相对路径的吗,好像实现中都是要用绝对路径实现的吧,所以应该获取当前路径加在指定的相对路径前面,好像用
System.getPropertis("user.dir")获取当前路径吧,不是很清楚,不对请见谅.
有这样指定相对路径的吗,好像实现中都是要用绝对路径实现的吧,所以应该获取当前路径加在指定的相对路径前面,好像用
System.getPropertis("user.dir")获取当前路径吧,不是很清楚,不对请见谅.
|
系统会按System.getProperty("user.dir")+"\gif\F02ep1.gif"去定位该文件,检查一下再试试
|
我想可能是程序没有办法找到你的图片所在位置你试下不用gif文件夹,把图片直接与类文件放到同一个目录下.
|
ImageIcon m_objIcon0 = new ImageIcon("./gif/F02ep1.gif");
试试看,
要不将gif目录不停的放入jar中的每一个目录看看
试试看,
要不将gif目录不停的放入jar中的每一个目录看看
|
加.;?不明白
请详细点
“.”在classpath中代表当前目录
请详细点
“.”在classpath中代表当前目录
|
你的环境变量设好了吗?
在CLASSPATH最后一个分号后面加个.
在CLASSPATH最后一个分号后面加个.
|
new ImageIcon("gif//F02ep1.gif");
没看懂!
--- ZJQ
没看懂!
--- ZJQ