Java Jar包:它们是否包含所有非JDK库?

时间:2012-10-17 19:39:59

标签: java jar build-system

  

可能重复:
  Is it possible to create an “uber” jar containing the project classes and the project dependencies as jars with a custom manifest file?

我正在研究多平台部署。 Perl和Python等语言总是令人沮丧的关键之一是部署第三方库和第二方库。

我想知道java构建过程是否允许将程序使用的所有非JRE库打包到jar中,以便可以将其部署到任何地方,而无需安装到任何其他目录中。

2 个答案:

答案 0 :(得分:1)

不,jar文件不应该包含其他jar文件。这样做是可能的,但只有使用自定义类加载器才能使一切变得更加复杂。为什么不将jar及其所有依赖项压缩在一起:

myApp.zip
  |_bin
  |  |_ start.bat
  |  |_ start.sh
  |
  |_lib
     |_myApp.jar
     |_other.jar
     |_other2.jar

答案 1 :(得分:1)

我认为你正在寻找像fatjar或uberjar这样的东西。

这是构建过程中的一步,它解压缩所有依赖项并将它们打包在一个大jar中。