当前位置: 首页 > 面试题库 >

在一个可执行jar中合并或合并所有jar

章涵蓄
2023-03-14
问题内容

这里有点“简单”的问题,但是
使用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的项目中也使用这些lib的相同版本)

我知道如何使用可运行的JAR文件来执行此操作。例如,请参阅:如何
使用Eclipse中包含的外部库创建一个jar ?

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

  • 我所有的类都根据我创建的包正确地以正确的目录结构导出(希望;-)),
  • 但是外部JAR文件是“按原样”导出的,因此,当我在另一个项目中导入我的JAR时,这些JAR(通用语言,…)无法显示,因此我必须重新导入它们。
    是否有一种简单的方法来导出具有目录结构的JAR文件,在
    该目录结构中,所有外部JAR文件也都提取到生成的JAR文件中?

问候


问题答案:

你看过JarSplice吗 ?

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



 类似资料:
  • 问题内容: 我的应用程序需要多个jar才能工作。由于它是桌面应用程序,因此我无法让用户负责安装。因此,在我的构建脚本中,我将jar内容解压缩到我的构建目录中,删除清单文件,编译我的软件,然后再次对其进行jar。一切正常,因为我的问题是此过程是否有长期副作用? 问题答案: 过去,JAR的内容很奇怪(例如包含和的DB2驱动程序;在Windows文件系统中解压缩后,这两个软件包将合并在一起)。 您需要了

  • 问题内容: Gradle可以将多个项目合并到一个jar中吗? 我知道您可以使用以下方法针对单个项目执行此操作: 但是一个人如何将多个子项目压缩到一个jar中呢? 我试过了,但不起作用: 问题答案: 这是我的解决方案,它稍微简单一些: 代码已在Gradle 1.12上进行了测试

  • 问题内容: 我有多个JAR文件,必须将其添加到Eclipse中的classpath中。 是否可以将30个文件合并为一个文件并包含该文件? 问题答案: 您可能想看看jarjar。 如果您使用Ant任务,也可以进行以下操作:

  • 又是我。我们必须编程一个莫尔斯电码转换器,我想我知道这个理论,我还创建了我的哈希图。我想用流来试试,你们中有人知道我是如何组合流的吗?因为我想像 逐行读取文件 言辞分裂 拼字 将char与映射的键进行比较,并将值添加到字符串中 我绝对不想要整个代码,因为我想自己做大部分,但是有人能像我一样解释一下吗 第一条流在下一条流中分离这对我很有帮助。 你好,卢卡斯。

  • 问题内容: 我整个上午都在搜索,但是大多数合并示例仅基于一个键,而在多个键上却找不到任何东西。 pid = 111,sid = 6,eid = 123的值在x和y中都匹配,然后合并为一条记录。如果它们不匹配,只需将其原样带过来。 我想要的最终结果: 问题答案: 这是从元组中重新锁定:

  • 问题内容: 我想合并两个或多个视频文件(它们可能是两个mp4或两个3gp或任何其他格式)。 问题答案: 您可以使用的最通用的工具是ffmpeg(如上面@Jeremy所述),但是在手机上使用它需要做一些工作。它也是LGPL许可的,其某些编码器(特别是x264)是GPL。 如果您要连接的两个文件都使用类似的编码,并且包含在从MP4派生的文件格式中(例如3GP),那么一个更简单的解决方案是使用纯Java