Need help with jhades?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

132 Stars 22 Forks MIT License 43 Commits 7 Opened issues


JHades - Java classpath troubleshooting tool

Services available


Need anything else?

Contributors list

# 47,060
37 commits
# 21,216
2 commits

JHades - Your way out of Jar Hell!

JHades is a Java classpath troubleshooting tool. It helps to solve common Java classpath / Jar Hell related problems such as ClassNotFoundException, NoClassDefFoundError, ClassCastException, NoSuchMethodException, LinkageError, etc.

It allows to query the classpath for class duplicates, find specific resource locations, etc.

Documentation available at

Example of a classpath problem

Let's say a java web application works fine in development, but when deploying it to a server the following problem occurs:

java.lang.ClassCastException: org.apache.bval.jsr303.ApacheValidationProvider cannot be cast to javax.validation.spi.ValidationProvider

How to troubleshoot

JHades provides several commands that allow to extract from the runtime environment a lot of information which is important for understanding what is going on. Namelly these types of questions can be answered:

  • are there any overlapping jars, with different versions of the same class?
  • Are those multiple versions of the same class all identical or not ?
  • where are the different versions of a given class located ?
  • which class loader is loading which version of a given class ?
  • What does the chain of classloaders look like, how are the classloaders configured ?

This is an example of how to answer several of these questions for the sample problem above:

 new JHades()

Jar overlap report

One of the most common sources of classpath problems are overlapping jar files, that contain multiple versions of the same class:

>>>> Jar overlap report: 

aspectjrt-1.7.2.jar overlaps with aspectjweaver-1.7.2.jar - total overlapping classes: 129 ejb3-persistence-1.0.2.GA.jar overlaps with hibernate-jpa-2.0-api-1.0.1.Final.jar - total overlapping classes: 91 stax-api-1.0-2.jar overlaps with xml-apis-1.4.01.jar - total overlapping classes: 34 javax.xml.soap-api-1.3.5.jar overlaps with saaj-api-1.3.jar - total overlapping classes: 29 commons-beanutils-1.8.3.jar overlaps with commons-collections-3.2.1.jar - total overlapping classes: 10 xbean-2.2.0.jar overlaps with xml-apis-1.4.01.jar - total overlapping classes: 6 commons-logging-1.1.1.jar overlaps with jcl-over-slf4j-1.6.6.jar - total overlapping classes: 6

Total number of classes with more than one version: 305

Check for more details.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.