I created new protocol handler jarjar: which just redirects inner part of URL to .jar handler again. Please note that I use '^/' as jar-in-jar separator to avoid conflict with regular jar handler.
Let's have Outer.jar which contains Inner.jar which contains tested/robots/Ahead.class
Now you can do this
// initialize, just once per JVM please JarJarURLConnection.register(); new URL( "jar:jarjar:file:/C:/mylibs/Outer.jar^/Inner.jar!/tested/robots/Ahead.class" ).openStream();Or create and configure ClassLoader this way
// initialize, just once per JVM please JarJarURLConnection.register(); new URLClassLoader( new URL[]{new URL("jar:jarjar:file:/C:/mylibs/Outer.jar^/Inner.jar!/")} ).loadClass("tested.robots.Ahead");If you need something more sophisticated or user friendly One-JAR is the solution I think.