创建jar问题

时间:2013-07-27 13:41:14

标签: java eclipse ant jar

这个问题可能是理论上的,但我找不到任何合适的解决方案。

假设我正在制作一个使用3个jar文件的模块(hibernate,log4j,jackson)。

现在我想编译我的模块并创建一个jar,这样我的模块就可以被任何其他模块使用,并且该模块不应再需要三个jar(hibernate,log4j,jackson)。

,即我的模块jar文件不应该有任何依赖。

我正在使用eclipse。我能够创建一个jar(project-> export-> jar),但它不包含jar中的jar 指导我如何做到这一点。

apache ant在这里有用吗?

2 个答案:

答案 0 :(得分:1)

Eclipse的Runnable Jar Wizard

Eclipse的Runnable Jar向导(文件→导出...→Java→Runnable Jar文件)允许开发人员从现有的运行配置创建可执行jar:

enter image description here

该向导包含3个处理依赖项的选项:

  1. 将所需的库提取到生成的jar: unarchives库中 依赖关系并将它们重新打包到您的可执行jar中。这个 选项具有简单的优点,不需要自定义 类加载器。但是重新打包库jar可能会导致其他问题 问题并没有保留签名罐子的签名。这个 选项也可能违反您所在图书馆的许可条款 使用

  2. 将所需的库打包到生成的jar中:创建一个“胖罐子” 使用自定义类加载器。生成的罐子包含         应用程序的类和资源         启动应用程序所需的库jar         一个小的自定义类加载器,知道如何在另一个jar存档中找到jar库

  3. 复制所需的库...:创建应用程序存档和副本 目标文件夹所需的任何库依赖项。

  4. 我认为第二种选择适合您目前的目的。

答案 1 :(得分:0)

您需要将依赖项中的所有类包含到jar文件中。 由于jar文件只是一个zip文件,你可以使用任何存档管理器(如Winzip)来浏览它们,然后将你所依赖的jar的内容复制到你自己的jar中,注意保持目录结构的完整。

这样你就可以把所有东西放在一个罐子里。