我创建了mytest.jar文件,其中包含大约30个库文件的jar库。 是否可以将所有库jar放在mytest.jar中,这样我只需要分配1个jar? 可能是可以使用清单完成吗? 感谢。
答案 0 :(得分:7)
使用标准Java类加载器无法从jars-inside-jars加载类。但是,可以使用自定义类加载器,例如UberJar的工作原理。
maven shade plugin采取了不同的方法。它将解压缩您所依赖的所有罐子,并将它们(以及您自己的类)打包到一个大罐子里。然后可以使用普通的类加载器。这更简单,也可以在没有maven的情况下使用jarjar。
答案 1 :(得分:4)
没有开箱即用。但是,One-Jar提供了解决方案。它适用于独立应用程序,这是我假设您正在制作的。
如果您正在制作applet,One-Jar将无效。
答案 2 :(得分:1)
通常会为此目的使用像jarjar
这样的jar重新打包工具。