我可以在一个jar文件中组合多个jar文件

时间:2011-02-23 10:22:10

标签: java eclipse jar

我有多个JAR文件,我必须在Eclipse中添加到classpath。

是否可以在一个文件中合并30个文件并包含该文件?

8 个答案:

答案 0 :(得分:7)

可以,但我认为这样做不一定是个好主意。三个可能的原因,毫无疑问还有更多:

  • 这使得查看任何一个组成文件的来源变得更加困难。
  • 这使得更换一个库变得更加困难
  • 如果有多个jar文件中包含的文件应该“赢”?例如,所有jar文件都有自己的清单...你可以将它们全部合并,但不一定......而对于其他文件,可能根本就不是合并它们的明智方法。

我的投票是将jar文件分开。

答案 1 :(得分:6)

您可能需要查看jarjar

如果你使用蚂蚁任务,你也可以去zipgroupfileset

<zip destfile="jarlibrary.jar">
    <zipgroupfileset dir="lib" includes="*.jar"/>
</zip>

答案 2 :(得分:3)

现有许多工具:

答案 3 :(得分:2)

这个问题似乎很可能重复。请尝试在本论坛的类似文章中找到答案 Clean way to combine multiple jars

答案 4 :(得分:1)

jarjar项目是您所需要的。

答案 5 :(得分:1)

这里有另一个线程解释如何package jars for releases,包括使用Ant,jarjar和eclipse插件。

答案 6 :(得分:1)

首先,你可以。 JAR只是一个ZIP文件。您可以将所有内容提取到一个目录中,然后创建zip文件(甚至手动使用WinZip或类似工具),调用结果* .jar(如果您愿意)并将其添加到类路径中。

唯一可能发生的问题是,如果几个jar文件包含具有相同名称(和路径)的资源。例如,manfest.mf或其他描述符。在大多数情况下,它不会导致任何问题,但有时如果应用程序代码使用这些资源,您可能会遇到麻烦

有一些自动工具可以做到这一点。看看JarJar。

但更重要的问题是:你为什么要这样做?如果不使用maven,请将所有库jar放到项目下名为lib的目录中。然后使用2-3次点击将所有这些罐子添加到eclipse中的类路径中。而已。

如果您正在使用maven,请将所有直接依赖项包含在您的pom.xml中,编译项目,然后说出mvn eclipse:eclipse。这将为您创建.classspath和.project。现在就使用它。

答案 7 :(得分:0)

Jar文件只是ZIP文件,因此您可以尝试解压缩所有jar文件,将所有文件放在一起然后再将它们压缩。