资源路径设置java jar

时间:2014-01-20 16:58:38

标签: java jar path resources

我有一个像这样的文件夹和包结构

  • XXX
    • SRC
      • view(此处的课程)
    • RSRC
      • 查看(此处的图片)

类文件正在使用图像文件夹的图像。在构建jar时我没有插入图像的问题,我只是将(在我的build.xml中)rsrc文件夹内容复制到src文件夹构建中,因此资源位于.class路径中:

<copydir src="./rsrc/studentapp/view/"
   dest="${build}/studentapp/view/"/>

创建我的jar后,我可以通过(示例)获取资源:

URL resource = this.getClass().getResource("testimage.png");

问题是,如果我只是想在不创建jar的情况下编译一个类,上面的行就不会工作,因为它不在正确的文件夹中。有没有办法相对支持这个订单结构读出一个文件,并让它也可以在jar中工作?

最好的问候

编辑:使用Windows可能会有不同的语法

1 个答案:

答案 0 :(得分:0)

通过设置相对于rscrc的路径解决它并将整个rsrc文件夹复制到jar构建

String path = "rsrc\\studentapp\\view\\testimage.png";
    File test = new File(path);
    try {
           BufferedImage image = ImageIO.read(test);

           ImageIcon icon = new ImageIcon(image);

           JOptionPane.showMessageDialog(null,
              " <- Image should appear here", "Testimage",
              JOptionPane.INFORMATION_MESSAGE, icon);

    } catch (IOException e1) {
        e1.printStackTrace();
    }

这里是build.xml中的一行:

  <copydir src="./rsrc" dest="${build}"/>