• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Tim Cooke
  • Campbell Ritchie
  • paul wheaton
  • Ron McLeod
  • Devaka Cooray
Sheriffs:
  • Jeanne Boyarsky
  • Liutauras Vilda
  • Paul Clapham
Saloon Keepers:
  • Tim Holloway
  • Carey Brown
  • Piet Souris
Bartenders:

Copy files within JAR to disk

 
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi. I'm a novice trying to learn some Java. Currently working on a small application. A feature in my application is that it holds some files (resources) and copies it to the hard disk.

Running it from Eclipse, it works 100% fine (!!). Unfortunately, when I export my app to a JAR and run it, files from within my application that need to be copied to the hard disk, aren't getting copied...

Here's some code that handles the copying from jar to hard disk:



I'm pretty sure the problem lies in the this.getClass().getResource() part. But not sure on what to fix.

There's probably more efficient code for copying files, but I only need a 'quick fix' for now. Can someone please help me?
 
Marshal
Posts: 80649
475
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Don't know. Why are you not using simpler classes? For text files you can use Scanner and Formatter.

That looks too difficult for "beginning Java", so I shall move the discussion.

And welcome to JavaRanch
 
Sheriff
Posts: 22849
132
Eclipse IDE Spring Chrome Java Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You can't use java.io.File, java.io.FileInputStream, java.io.FileOutputStream, java.io.FileReader, java.io.FileWriter and java.nio.channels.FileChannel with files inside JAR files. That's because technically speaking they are no longer files - they are JAR file entries. You should switch to Class.getResourceAsStream() instead, then use old fashioned stream-based copying.
 
reply
    Bookmark Topic Watch Topic
  • New Topic