2014-01-20 97 views
0

我有一个文件夹和封装结构看起来像这样资源路径设置Java罐子

  • XXX
    • SRC
      • 视图(在这里班)
    • RSRC
      • 查看(图片在这里)

类文件,使用图像文件夹的图像。同时建立了罐子我没有与插入图像的一个问题,我刚才复制(在我的build.xml)备的资源文件夹内容src文件夹的建立,使资源在的.class路径:

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

创建我的罐子后,我能获得通过(例如)资源:

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

的问题是,如果我只是想编译一个类,而无需创建一个罐子,上面的行不会工作,因为它不是在正确的文件夹中。有没有办法读出一个相对于这个顺序结构的文件,并让它在jar中工作呢?

问候

编辑:使用窗口也许有不同的语法

回答

0

相对路径只设置所要解决它rscrc和整个RSRC文件夹复制到罐子建立

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}"/>