JarLauncher adds the URL for the root archive to the class path of LaunchedURLClassLoader. This means that the root archive is on the class path of both LaunchedURLClassLoader and its parent (the system class loader). This results in resources being found twice when they're found via LaunchedURLClassLoader.