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

将发布合并到一个JAR文件中的最简单方法

朱和惬
2023-03-14
问题内容

是否有工具或脚本可以轻松地将一堆JAR文件合并为一个JAR文件?一个好处是可以轻松设置主文件清单并使之可执行。

具体情况是Java重组文本工具。我想用类似的东西来运行它:

java -jar rst.jar

据我所知,它没有依赖关系,这表明它不应该是一个简单的单文件工具,但是下载的ZIP文件包含许多库。

      0  11-30-07 10:01   jrst-0.8.1/
    922  11-30-07 09:53   jrst-0.8.1/jrst.bat
    898  11-30-07 09:53   jrst-0.8.1/jrst.sh
   2675  11-30-07 09:42   jrst-0.8.1/readmeEN.txt
 108821  11-30-07 09:59   jrst-0.8.1/jrst-0.8.1.jar
   2675  11-30-07 09:42   jrst-0.8.1/readme.txt
      0  11-30-07 10:01   jrst-0.8.1/lib/
  81508  11-30-07 09:49   jrst-0.8.1/lib/batik-util-1.6-1.jar
2450757  11-30-07 09:49   jrst-0.8.1/lib/icu4j-2.6.1.jar
 559366  11-30-07 09:49   jrst-0.8.1/lib/commons-collections-3.1.jar
  83613  11-30-07 09:49   jrst-0.8.1/lib/commons-io-1.3.1.jar
 207723  11-30-07 09:49   jrst-0.8.1/lib/commons-lang-2.1.jar
  52915  11-30-07 09:49   jrst-0.8.1/lib/commons-logging-1.1.jar
 260172  11-30-07 09:49   jrst-0.8.1/lib/commons-primitives-1.0.jar
 313898  11-30-07 09:49   jrst-0.8.1/lib/dom4j-1.6.1.jar
1994150  11-30-07 09:49   jrst-0.8.1/lib/fop-0.93-jdk15.jar
  55147  11-30-07 09:49   jrst-0.8.1/lib/activation-1.0.2.jar
 355030  11-30-07 09:49   jrst-0.8.1/lib/mail-1.3.3.jar
  77977  11-30-07 09:49   jrst-0.8.1/lib/servlet-api-2.3.jar
 226915  11-30-07 09:49   jrst-0.8.1/lib/jaxen-1.1.1.jar
 153253  11-30-07 09:49   jrst-0.8.1/lib/jdom-1.0.jar
  50789  11-30-07 09:49   jrst-0.8.1/lib/jewelcli-0.41.jar
 324952  11-30-07 09:49   jrst-0.8.1/lib/looks-1.2.2.jar
 121070  11-30-07 09:49   jrst-0.8.1/lib/junit-3.8.1.jar
 358085  11-30-07 09:49   jrst-0.8.1/lib/log4j-1.2.12.jar
  72150  11-30-07 09:49   jrst-0.8.1/lib/logkit-1.0.1.jar
 342897  11-30-07 09:49   jrst-0.8.1/lib/lutinwidget-0.9.jar
2160934  11-30-07 09:49   jrst-0.8.1/lib/docbook-xsl-nwalsh-1.71.1.jar
 301249  11-30-07 09:49   jrst-0.8.1/lib/xmlgraphics-commons-1.1.jar
  68610  11-30-07 09:49   jrst-0.8.1/lib/sdoc-0.5.0-beta.jar
3149655  11-30-07 09:49   jrst-0.8.1/lib/xalan-2.6.0.jar
1010675  11-30-07 09:49   jrst-0.8.1/lib/xercesImpl-2.6.2.jar
 194205  11-30-07 09:49   jrst-0.8.1/lib/xml-apis-1.3.02.jar
  78440  11-30-07 09:49   jrst-0.8.1/lib/xmlParserAPIs-2.0.2.jar
  86249  11-30-07 09:49   jrst-0.8.1/lib/xmlunit-1.1.jar
 108874  11-30-07 09:49   jrst-0.8.1/lib/xom-1.0.jar
  63966  11-30-07 09:49   jrst-0.8.1/lib/avalon-framework-4.1.3.jar
 138228  11-30-07 09:49   jrst-0.8.1/lib/batik-gui-util-1.6-1.jar
 216394  11-30-07 09:49   jrst-0.8.1/lib/l2fprod-common-0.1.jar
 121689  11-30-07 09:49   jrst-0.8.1/lib/lutinutil-0.26.jar
  76687  11-30-07 09:49   jrst-0.8.1/lib/batik-ext-1.6-1.jar
 124724  11-30-07 09:49   jrst-0.8.1/lib/xmlParserAPIs-2.6.2.jar

如你所见,不需要手动执行此操作有些可取。

到目前为止,我只尝试了AutoJar和ProGuard,它们都很容易上手。看来JAR文件中的常量池存在一些问题。

显然,jrst有点破损,因此我将对其进行修复。在Maven的 pom.xml文件显然是打破过,所以我必须解决这个问题JRST固定之前......我觉得自己像一个错误磁铁:-)

更新:我从来没有修正这个应用程序,但是我签出了基于胖JAR的Eclipse的“ Runnable JAR导出向导”。我发现这很容易用于部署自己的代码。

其他一些出色的建议对于在非Eclipse环境中进行构建可能会更好,oss可能应该使用Ant进行良好的构建。(到目前为止,Maven只是给我带来了痛苦,但其他人还是喜欢它。)


问题答案:

Eclipse 3.4 JDT的Runnable JAR导出向导。

在Eclipse 3.5中,已对此进行了扩展。现在,您可以选择要如何处理引用的JAR文件。



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

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

  • 如果我有一些文件,每个文件都有一个页面,我想使用 我在这里读到了几十个关于相同的问题,但大多数问题都已经过时或不再适用于

  • 问题内容: 我有两个文本文件,一个包含HTML,另一个包含URL链接: 文件1(HTML): 文件2(URL链接): 我需要合并它们,以便将FILE 2中的段插入到FILE 1中的HTML中,如下所示: 输出: 什么是最好的方法?哪种语言最适合以最小的复杂度完成此任务? 问题答案: 您需要zip功能,该功能在大多数语言中都可用。目的是并行处理两个或多个数组。 在Ruby中将是这样的: 要压缩更多,

  • 问题内容: 我在Web应用程序中使用jquery,我需要将更多jquery脚本文件加载到单个页面中。 Google建议我将所有jquery脚本文件合并到一个文件中。 我怎样才能做到这一点? 问题答案: 在Linux上,您可以使用简单的Shell脚本将多个javascript文件合并为一个。它利用了Closure Compiler在线服务,因此生成的脚本也得到了有效压缩。

  • 问题内容: 运行后,结果类似于: 第一个元素是我已提取到名为的文件的内联javascript 这可行,但我想将 所有3个文件合并为一个文件 我尝试使用filesmerge.com合并JS文件,但这在引用单个文件时导致错误: 然后,我尝试使用jscompress.com进行合并,尽管这不会产生任何错误,但未呈现react root元素 我也尝试过在create-react-app repo上建议的此