0

I'm trying to acces a File inside the .jar. In Netbeans, this:

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

Prints out:

true 

After building however, it prints false.

The file is definitely in the .jar, next to the .class file, and something like this:

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

does paint the image after building.

How can I acces the Image.jpg as a File object?

2 Answers 2

2

The file is packed, try

resource.getInputStream() 

or

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

Hope it helps

Sign up to request clarification or add additional context in comments.

Comments

1

You don't get a File object to it. Its an entry in a JAR not a File on the Filesystem. You have a few options. Create a File by copying the InputStream to the Filesystem, FInd a way to use the InputStream instead, or always have your JAR expanded.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.