2012-04-17 81 views
0

我試圖訪問.jar文件。在NetBeans中,這樣的:使用.getResource()從.jar獲取文件

System.out.println(new File(this.getClass().getResource("Image.jpg").getFile()).exists()); 

打印出:

true 

後建築然而,它打印錯誤。

的文件肯定是在的.jar,旁邊的.class文件,而像這樣:

new Frame(){ 
     @Override 
     public void paint(Graphics g){ 
      try{ 
       g.drawImage(ImageIO.read(this.getClass().getResource("Image.jpg")), 0, 0, this); 
      } catch(Exception e){e.printStackTrace();} 
     } 
    }.setVisible(true); 

並建成後繪製圖像。

我如何使用Image.jpg作爲File對象?

回答

1

你沒有得到一個File對象。它在JAR中不是文件系統上的文件。你有幾個選擇。通過將InputStream複製到文件系統來創建文件,找到一種使用InputStream的方法,或者始終擴展JAR。

2

文件打包,儘量

resource.getInputStream() 

InputStream streamOfYourImg = this.getClass().getRessourceAsStream("com/package/resources/image.jpeg"); 

希望它可以幫助