Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 266
  • Last Modified:

Use jar of a jar for your classpath

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
rzvika2
Asked:
rzvika2
1 Solution
 
girionisCommented:
 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
 
Venci75Commented:
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
 
objectsCommented:
Did you use the same compression for creating a and b?
0
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

 
rzvika2Author Commented:
Venci75: yes, can you tell me about a more powerfull compression tool?
objects: yes, the maximum compression.
0
 
heyhey_Commented:
I would suggest you to use obfuscator
0
 
rzvika2Author Commented:
Can you tell me some more info (whre to get it, compression relates to winzip...)
Thanks!
0
 
rzvika2Author Commented:
BTW, in case it compress the code like Dashopro, we already use Dashopro.
We want to compress more than that...
0
 
objectsCommented:
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
 
iartmirkoCommented:
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now