0

.jar 内のファイルにアクセスしようとしています。Netbeans では、次のようになります。

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

プリントアウト:

true

ただし、ビルド後は false と出力されます。

ファイルは間違いなく .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);

ビルド後に画像をペイントします。

File オブジェクトとして Image.jpg にアクセスするにはどうすればよいですか?

4

2 に答える 2

2

ファイルはパックされています。試してみてください

resource.getInputStream() 

また

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

それが役に立てば幸い

于 2012-04-17T11:57:17.323 に答える
1

File オブジェクトを取得しません。ファイルシステム上のファイルではなく、JAR のエントリです。いくつかのオプションがあります。InputStream をファイルシステムにコピーしてファイルを作成するか、代わりに InputStream を使用する方法を見つけるか、常に JAR を展開してください。

于 2012-04-17T11:52:45.807 に答える