日期:2014-05-20  浏览次数:20711 次

jar运行问题,似乎找不到图片
在eclipse下运行一切正常
但是等输出jar后   显示不出运行窗口,只是一个最小化的frame标题bar
使用的是jdk1.5,也看过网上类似的,但没有找到确切答案。
图片是这样初始化的
tracker   =   new   MediaTracker(this);

fishImages[0]   =   Toolkit.getDefaultToolkit().getImage( "fish1.gif ");
tracker.addImage(fishImages[0],   0);

fishImages[1]   =   Toolkit.getDefaultToolkit().getImage( "fish2.gif ");
tracker.addImage(fishImages[1],   0);

aquariumImage   =   Toolkit.getDefaultToolkit().getImage( "bubbles.gif ");
tracker.addImage(aquariumImage,   0);

try
{
        tracker.waitForID(0);
}
catch   (Exception   ex)
{
        System.out.println(ex.getMessage());
}

请教高手是什么原因呢?


------解决方案--------------------
在jar包里取得资源的方法,最关键的地方是这样的:

getClass().getResource(String); 这个方法返回一个URL,参数用的是相对路径,相对于当前这个类的在jar包里的路径.
------解决方案--------------------
顶!直接用命令行打包!
举个例子:
有个文件夹Spider,里面有一些类(有包或是无包的),还有一张图片,其中主类是Spider6,在主类中使用图片的语句:ImageIcon ico = new ImageIcon( "spider1.gif ");
现在要把这些东西打包,用命令行进行。
1. Spider目录下建立META-INF目录,再在META-INF目录下建立MANIFEST.MF文件,该文件内容如下:
Manifest-Version: 1.0
Main-Class: Spider6

最主要的是指明主类。

2. 打包,命令行到Spider目录下面,执行:
jar cvfm Spider.jar META-INF/MANIFEST.MF .
注意最后有一个点不要少了,表示把当前目录内的东西打包。

3. 楼主好运!^_^!