Mycila UJD is a small Java Agent to help discover unused JARs of an application and web application. It can be accessed through JMX to see any information about the classloader, classpath, classes, ...It works better than a static code analyzer since it really detects which classes are loaded or not within the JVM at runtime.
Mycila UJD also has a good API representing the whole ClassLoader hierarchy, with the difference between loaded classes and contained classed, which are all the classes in the JAR files that could be potentially loaded.
The JMX methods exposed allow you to discover classloaders, classes, shared resources, ...
Mycila UJS also works well on web applications: you can easily filter per classloader and see for a specific webapp which JARs are unused.
The project and documentation is located at http://code.mycila.com/wiki/MycilaUJD
Feel free to contribute, post comments and requests !