title: Reducing jar file size?
body: <p>Is there a good app to reduce jar file size by eliminating redundant 
  classes/methods/constant pool elements? (i.e. not reachable from a fixed
  set of entry points, assuming no reflection)</p>
  
  <p>I'm tired of pulling in bloated libraries when I'm just using a couple of methods from them.</p>
  
  <p>(I'm not talking about small "local" optimizations like making names smaller. I'm thinking more of something that does global analysis to figure out which classes/methods/variables are used, given a set of entry points (including reflective entry points), and removes everything that is not used.</p>
  
  <p>My webapp is like, 45MB, mostly due to 30-odd libraries, and I'm pretty sure I'm using only a small fraction of each library.</p>