Solved

Use jar of a jar for your classpath

Posted on 2002-04-25
9
215 Views
Last Modified: 2013-11-23
Hi!
I want to reduce the size of my zip file (a.zip) that contains my classes (1,130 KB).
I've noticed that if I create a new zip file (b.zip) that contains the old zip file (a.zip) then the size of b.zip becomes 1,000 KB !
The problem is that I can't put b.zip in the classpath instead of a.zip and expect java to get the classes from it.

Can you tell me how can I use b.zip?
Thanks!!!
0
Comment
Question by:rzvika2
9 Comments
 
LVL 35

Expert Comment

by:girionis
Comment Utility
 If you create a b.zip file that contains the a.zip file and some additional classes then you can use it in your classpath. The only thing is that the JVM will not be able to read the classes from the a.zip file but only the ones from the b.zip. If you want to use both files then you will have to have two separate .zip files in your classpath.

  Hope it helps.
0
 
LVL 9

Expert Comment

by:Venci75
Comment Utility
I don't think it is possible. At least you should create your own class loader.
How do you create your zip file? - using WinZip?
I am asking because may be there is another way to reduce the size of your zip file
0
 
LVL 92

Expert Comment

by:objects
Comment Utility
Did you use the same compression for creating a and b?
0
 

Author Comment

by:rzvika2
Comment Utility
Venci75: yes, can you tell me about a more powerfull compression tool?
objects: yes, the maximum compression.
0
Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

 
LVL 16

Expert Comment

by:heyhey_
Comment Utility
I would suggest you to use obfuscator
0
 

Author Comment

by:rzvika2
Comment Utility
Can you tell me some more info (whre to get it, compression relates to winzip...)
Thanks!
0
 

Author Comment

by:rzvika2
Comment Utility
BTW, in case it compress the code like Dashopro, we already use Dashopro.
We want to compress more than that...
0
 
LVL 92

Expert Comment

by:objects
Comment Utility
As others have mentioned there is no easy way to use a jar in a jar. And if you develop one, then the extra class will eat up the minor saving you achieve doing this.
If you want to reduce the size of your jar then I'd suggest looking at your code, and trying to optimise the size of your class files.
0
 
LVL 1

Accepted Solution

by:
iartmirko earned 200 total points
Comment Utility
Hi rzvika,

if you need to reduce the size of your zip/jar file you don't have to zip it twice. There is a nice (FREE!) tool from IBM alphaWorks that solves your problem of big jars by doing the following:
- Removal of dead methods and fields
- Detection of live overridden methods
- Removal of unused classes and interfaces
- Inlining of methods
- Removal of non-essential attributes
- Shortening of internal method names and field names
- Removal of non-used entries in the constant pool

After the above steps, JAX may use more aggressive compression techniques as well.

See http://www.alphaworks.ibm.com/tech/jax for downloads and details...

Hope taht will solve your problem.

Mirko
0

Featured Post

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

Suggested Solutions

Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
This was posted to the Netbeans forum a Feb, 2010 and I also sent it to Verisign. Who didn't help much in my struggles to get my application signed. ------------------------- Start The idea here is to target your cell phones with the correct…
Viewers learn about the “while” loop and how to utilize it correctly in Java. Additionally, viewers begin exploring how to include conditional statements within a while loop and avoid an endless loop. Define While Loop: Basic Example: Explanatio…
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now