当前位置: 首页 > 知识库问答 >
问题:

一个jar文件,其中所有的依赖库都已解压缩

汪阳飇
2023-03-14

我正在尝试构建我的应用程序jar(非可执行jar),它的所有依赖项jar文件也要解包。

简单地解释一下我的问题,在eclipse中,导出可运行/可执行的jar,有一个选项“Extract required libraries into generated jar”。

请帮助我同样的选项为不可运行的jar也。

谢谢

共有1个答案

方野
2023-03-14

没有。

作为背景:在JAR文件(有时称为fat JAR或app JAR)中打包依赖项不是本机Javahtml" target="_blank">机制,而是使用封装在JAR中的自定义类加载器或启动脚本嫁接而来。

如果您使用Eclipse创建了一个可运行的JAR文件,它将使用一个包装器来运行您的应用程序,该应用程序可以读取打包的库。如果打开导出的JAR文件并查看它的清单,就可以看到这一点:

Manifest-Version: 1.0
Rsrc-Class-Path: ./ [removed]
Class-Path: .
Rsrc-Main-Class: com.example.Test
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader

有一些机制可以将JAR文件组合成一个单独的文件,方法是解压缩依赖项,然后将它们重新打包到您的JAR中。例如:如何组合两个Jar文件

但是请注意,通过重新打包第三方JAR,您可能会遇到签名类或冲突元数据的问题。

如果您想要发布库和/或正确地管理依赖项,我建议查看构建系统,如Maven(http://Maven.apache.org/)或Gradle(http://www.cradle.org/)。我个人更喜欢Gradle。

编辑:这个项目看起来很有前途:https://github.com/puniverse/capsule

 类似资料:
  • 我在我的项目中使用了Maven和几个库,其中一些嵌套在最后的JAR文件中。 提前谢了。

  • 问题内容: 我有一个ZIP文件目录(在Windows计算机上创建)。我可以使用手动解压缩它们,但是如何通过外壳解压缩当前文件夹中的所有ZIP文件呢? 使用Ubuntu Linux服务器。 问题答案: 根据以下链接,这可以在bash中运行: 解压缩\ *。zip

  • 你能帮我解决这个问题吗? 谢了!

  • 我正在尝试使用Ant1.9.6从您的项目中构建一个jar文件。在构建jar文件时,我没有得到任何编译错误,但是在执行它时,我得到了NoClassDefoundError。我已经在生成的清单文件中验证过,我可以看到所需的依赖JAR被添加到类路径中,如class-path:lib/a.jar lib/b.jar lib/c.jar。lib文件夹与src文件夹并行,因此不可能是问题。我正在Mac OS上

  • 本文向大家介绍Apache Maven 创建具有项目所有依赖项的.jar文件,包括了Apache Maven 创建具有项目所有依赖项的.jar文件的使用技巧和注意事项,需要的朋友参考一下 示例 要创建包含所有依赖项的JAR,可以使用内置描述符格式jar-with-dependencies。以下示例package使用此内置描述符并声明的主类来配置绑定到该阶段的Assembly Plugin的执行co