When there were duplicate JARs with different versions, the behavior was very inconsistent. Does anyone know how the JVM deals with duplicates?
The classloader searches the classpath in order, and uses the first matching class it finds.