将多个 Jar 合并到单个 Jar 中

2022-09-04 08:24:39

我的应用程序需要多个 jar 才能工作。由于它是一个桌面应用程序,我不能让用户负责安装。因此,在我的构建脚本中,我将jars内容解压缩到我的构建目录中,删除清单文件,编译我的软件并再次jar。一切都应该正常工作,我的问题是这个过程是否有任何长期的副作用?


答案 1

在过去,有些 JAR 的内容很奇怪(比如 DB2 驱动程序,它包含 和 ;在 Windows 文件系统中解压缩后,这两个包将被合并)。com.ibmcom.IBM

您需要注意的唯一问题是 META-INF 中的签名 jar 和其他文件,它们在多个源 JAR 中可能具有相同的名称。

所有这些问题的简单解决方案是使用 One-JAR。它允许将多个 JAR 打包成一个,而无需先解压缩它们。并阅读以下答案:将版本合并到一个JAR文件中的最简单方法


答案 2

一个更简单的解决方案(IMO)是使用Maven的汇编插件,该插件也在之前问答中链接到的另一个问题的答案之一中进行了描述。前提是您正在使用Maven(它本身就是推荐的工具)作为构建工具。


推荐