我在工程根目录下放了个文件夹image,里面有些图片,然后程序运行的时候会在这个文件夹下建立一个文本文档,在eclipse里还能运行,但是打成jar包后双击就不能运行了,我觉得是这些资源文件的路径引用问题,要怎么改呢,我的引用图片和建立文件的代码如下:
btnLogin = new JButton(new ImageIcon("image/denglu.gif"));
PrintWriter print = new PrintWriter(new FileOutputStream(new File("image/login.txt")), true);

解决方案 »

  1.   

    那应该怎么写,我在image前加上/也不行
      

  2.   

    读图片的时候不妨从类路径读,如下:
    btnLogin = new JButton(new ImageIcon(YourFrame.class.getResource("/image/denglu.gif")));
    记得把image目录放src目录下。
      

  3.   

    要相对可执行程序的运行目录,不是工程目录,这是非常正确的
    假如执行程序在D:/test这个目录下,那么d:/test 目录下应该有这个目录: image ,
    这个image目录下就是文件denglu.gif
    这样你的程序才可以根据相对目录找到你所使用的这个文件。
      

  4.   

    现在我把image文件夹放在了和jar相同的路径下就可以了,但是我想把image也包含在jar文件中怎么办?
      

  5.   

    我打包好像没问题啊。也是没用绝对路径。
    你改成:btnLogin = new JButton(new ImageIcon("/image/denglu.gif"));
    PrintWriter print = new PrintWriter(new FileOutputStream(new File("/image/login.txt")), true);
    这个没问题
      

  6.   

    如果你是把图片打包到jar文件中,不能使用文件的加载方式,需要这样:
    YourFrame.class.getClassLoader().getResourceAsStream("/image/xxx.jpg")
    这样的写法,从类路径中加载资源。