How Jar Jar Links works
masterJar Jar Links is a utility for repackaging Java libraries to embed them into your own distribution. This solves two main problems:
- Single-file distribution: You can ship a single JAR file containing all necessary dependencies.
- Dependency conflicts (Jar Hell): You can avoid version conflicts by renaming the classes of an embedded library so they do not collide with other versions of the same library present in the classpath.
It works by using bytecode transformation (via ASM) to rename classes, update all internal references to those classes, transform string literals, and move associated resource files.