将所有jar组合或合并到一个可执行jar中

时间:2013-05-07 15:27:17

标签: java eclipse jar

这里有一个“简单”的问题,但使用Eclipse做这样的事情似乎很复杂。

我有一个“utils”项目,我在其中开发了“常用”代码,如xml解析器,记录器,数学计算,调试实用程序等。

这个库基于其他几个外部库(commons-lang-3.1,colt-1.2.0,jdom-2.0.4)工作,它是一个不可运行的JAR文件(即,没有main(),只包含在其他项目中的实用程序代码。)

我想要做的是,当我创建项目的JAR文件时,在JAR文件中提取所有外部JAR(common-lang,colt,jdom),以便在其他项目中自动使用它们。

原因是我不想在基于我的lib的每个项目中重新包含common-lang,colt和jdom,而是使用我的lib JAR文件中包含的那些(这是确保我的方法)将基于我的lib在项目中使用相同版本的libs

我知道如何使用可运行的JAR文件来做到这一点。 例如,请参阅:How to create a jar with external libraries included in Eclipse?

但是在一个不可运行的JAR文件中:

  • 基于我创建的包(希望; - )),我的所有类都正确地导出到正确的目录结构中,
  • 但外部JAR文件“按原样”导出,因此当我在另一个项目中导入JAR时,无法看到那些JAR(common-lang,...),我必须重新导入它们

是否有一种简单的方法可以使用目录结构导出此JAR文件,其中所有外部JAR文件也在生成的JAR文件中提取?

此致

1 个答案:

答案 0 :(得分:3)

你见过JarSplice吗?

JarSplice通过易于使用的GUI将所有jar和本机文件合并到一个易于使用的可执行jar文件中。

enter image description here