如果我的程序中要引用a.jpg这个文件,我把这个文件和我的程序一起放到一个jar文件中,发现程序访问不了这个jar文件,而是访问与这个jar文件在同一个目录下的a.jpg。这个问题怎么解决?

解决方案 »

  1.   

    那么如果要访问Jar包里的文件,路径应该怎么设?
      

  2.   

    把你读图片的程序贴出来看看~~
    如果你是APPLET,就用getCodeBase()得到APPLET所在的地址,然后再引用你的图片所在的地址就行了~~
    如你的图片在jar中的images文件夹中,而你的APPLET是在xx文件夹中,这时用
    URL url=new URL(getCodeBase(),"images/myimage.jpg");
      

  3.   

    我的是java application。
    代码如下:
    import javax.swing.*;
    import java.awt.*;public class Test extends JFrame
    { JLabel l=new JLabel(new ImageIcon("a.jpg"));

    public Test()
    {
    Container cp=getContentPane();
    cp.add(l);
    pack();

    }

    public static void main(String args[])
    {
    Test t=new Test();
    t.setVisible(true);

    }
    }
    若把它做成一个jar包,并把a.jpg放到这个jar包的根目录(即与Test.java在一个目录里)就会访问不到这个文件,如何能访问到这个文件?
      

  4.   

    ClassLoader.getSystemResource(),可以得到Classpath下的文件URL,如:
    jar:file:c:/temp/dost.jar!/a.jpg
      

  5.   

    java application不太知道;
    不过一般web-inf目录下文件是禁止直接访问的;