我用jar打包一个能显示图像的类,命令如下:jar -cmfv MANIFEST.txt PicApp3.jar PicApp3.class fl.GIFPicApp3中包含main函数,如果fl.GIF和PicApp3.jar在同一个目录中的时候运行PicApp3.jar能显示图像,但是删除了fl.GIF程序就不能显示了,还能运行。我就怀疑了,难道打包了之后还要外带图像?包里面明明有图像的。Manifest-Version: 1.0
Created-By: 1.5.0_11 (Sun Microsystems Inc.)
Main-Class: PicApp3请告诉我如何能让程序利用它自己包里面的图像。
谢谢

解决方案 »

  1.   

    那说明你的代码有问题,你应该是用this.getClass().getResource或者this.getClass().getClassLoader().getResourceAsStream之类的方法,而不是new FileInputStream
      

  2.   

    奥,我们老师用的ImageIcon....static Icon icoLogo; // 图像类的对象
    icoLogo=new ImageIcon("fl.GIF");
    jlblLogo=new JLabel(icoLogo);
      

  3.   

    icoLogo=new ImageIcon(this.getClass().getResource("fl.GIF"));
      

  4.   

    主要是路径问题,注意导出后文件名的大小写是区分的,细心看看应该能够解决
    new ImageIcon(this.getClass().getResource("imagefilepath"));orSwingResourManager.getIcon(main.Class,"imagefilepath");
      

  5.   

    谢谢ls 我在一个实际项目中这样用:this.setIconImage (new javax.swing.ImageIcon(getClass().getResource("/apackage/image/main.png")).getImage ());