【问题标题】:How to add a jar file into a jar file? [duplicate]如何将jar文件添加到jar文件中? [复制]
【发布时间】:2011-12-12 22:40:49
【问题描述】:

可能重复:
Can you add multiple jars in a jar file and then launch that jar file

我想找到一种将 jar 文件嵌入到可执行 jar 文件中的方法,以便程序所需的所有实用程序都包含在 jar 文件中。

这个 URL 描述了我想要做的事情,但说只有通过编写自定义类加载器才能实现:

http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html

即使那个 URL 令人沮丧,我也不会放弃。

我要嵌入的特定 .jar 文件是 groovy.jar 文件。

具体来说,我希望我的 jar 文件看起来像这样:

jar -tf MyProg.jar
META-INF/
META-INF/MANIFEST.MF
lib/groovy-all-1.6.9.jar
MyProg.class

我想这样执行:

java -jar MyProg.jar

其中MyProg.class是一个groovy程序,运行java -jar MyProg.jar的电脑上没有安装groovy

我已经成功地分解了 MyProg.jar 文件中的 groovy.jar 文件,但这很麻烦。

有没有人有一个自定义的类加载器来做我想要的? 有没有人有其他想法?

【问题讨论】:

    标签: java groovy jar


    【解决方案1】:

    如果我理解正确,我认为您的案例比您链接的案例更简单,因为它解决了其他 jar 位于调用方 jar 外部而您想引用 jar 的情况你的罐子里。

    我使用Eclipse,它自动包含资源,包括jar。我只需右键单击相关包并设置构建路径。其他 IDE 可能也有同样的能力。

    如果您不使用 IDE(?!),JAR file format 只不过是一个 zip 文件。您可以使用任何 zip 存档器来创建 JAR 文件,只要您确保 MANIFEST 文件位于首位即可。

    【讨论】:

      【解决方案2】:

      您不能轻松地将不同的 jar 捆绑在一起,因为清单文件的类路径条目仅引用 jar 本身之外的 jar。

      一些工具可能会帮助您更改 jar 并更改其类加载机制。看看为什么您的问题已关闭。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-05-05
        • 2010-10-02
        • 2011-01-22
        • 1970-01-01
        • 2019-12-04
        • 2022-01-03
        • 2011-10-26
        相关资源
        最近更新 更多