使用.getResource()从.jar获取文件

时间:2012-04-17 11:37:22

标签: java file jar getresource

我正在尝试访问.jar中的文件。在Netbeans中,这个:

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对象访问?

2 个答案:

答案 0 :(得分:2)

文件已打包,请尝试

resource.getInputStream() 

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

希望有所帮助

答案 1 :(得分:1)

您没有获得File对象。它是JAR中的条目而不是文件系统上的文件。你有几个选择。通过将InputStream复制到Filesystem来创建文件,改为使用InputStream,或者总是扩展JAR。