Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Resource within jar file within jar file

 
Fabricio Sanchez
Ranch Hand
Posts: 33
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi There,

I have my main jar file containing classes and within that I have another jar file full of images and a library.xml file to manage those images as such:

utilities.jar
- com/esp/textures/JarTextureLibrary.class
- com/esp/textures/textures.jar
- library.xml
- bricks/brick_01.gif
- bricks/brick_02.gif
- etc...

In code I do the following


I then modify the URL by:


I then proceed to read the xml file from this newly created xmlString.

Now this doesn't work because of the multiple "!/" that appear on the final resulting URL giving me the following error message:

xml�library�location�is:�jar:file:/C:/current/lib/utilities.jar!/com/esp/textures/textures.jar!/library.xml
JAR entry com/esp/textures/textures.jar!/library.xml not found in C:\current\lib\utilities.jar

Any ideas how I can read not only the library file (library.xml) but also the images contained within it?

Is the only way to extract the textures.jar file locally and then try and access it?

Thank you in advance,

Regards,

Fabricio
 
Paul Clapham
Sheriff
Pie
Posts: 20958
31
Eclipse IDE Firefox Browser MySQL Database
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yes, not having the jar file inside another jar file would make things far easier. And if you made both jar files be in the classpath, you wouldn't have to change your existing code.
 
Norm Radder
Ranch Hand
Posts: 732
4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Here's an idea. Override/extend the File class with a class that will get its input from memory, say a byte array. Read the nested/contained jar file from the real jar file into the byte array. Then use the ZipFile constructor with your extended File class to process the jar file from memory.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic