2012-04-17 14 views
0

.jar内のファイルにアクセスしようとしています。 NetBeansで、この:.getResource()を使用して.jarからファイルを取得する

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

プリントアウト:建物の後

true 

しかし、それは偽印刷します。

ファイルには、次の.classファイルに、.jarで間違いなく、このような何か:

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"); 

はそれが

を役に立てば幸いしてみてください
関連する問題