【问题标题】:Creating an executable jar from 2 other executable jar从其他 2 个可执行 jar 创建一个可执行 jar
【发布时间】:2026-02-19 13:00:01
【问题描述】:

我想从其他 2 个可执行 jar 文件创建一个可执行 jar 文件。 所以我正在做一个博彩项目,我有 2 个项目,客户和监控。我创建了他们的 jar 文件,一切都很好。 但是有没有办法合并他们的 jar 文件,这样我就可以从 1 个 jar 文件中运行,这样我就不必每次都运行 client.jar 和 monitor.jar?

【问题讨论】:

    标签: java netbeans jar executable-jar


    【解决方案1】:

    可以将这两个 jar 文件合并为一个 jar 文件,但是,如果没有通过命令行指定主类,则每个 jar 文件只能有一个运行的主类。

    这意味着您必须要么创建一个新的主类来执行之前的两个主类,要么最终使用不同的参数运行同一个 jar 文件两次。

    但是,我不建议将这两者结合起来。这两个是单独的项目是有原因的,那么为什么要将它们结合起来呢?此外,如果一个 jar 文件崩溃,第二个仍然会运行。

    如果您仍想将这两者结合起来,我看到两个选项:

    • 要么创建第三个项目(我假设是 maven?),它依赖于两个项目并包含新的主类
    • 或者,如果您遇到类加载问题,因为第一种方法会将 jar 放入一个 jar 文件中,您可以使用 maven shade 插件来获取一个平面 jar 文件。如果您使用无法控制资源加载方式的第三方库,这有时是必要的。

    【讨论】:

      【解决方案2】:

      创建另一个项目并将这两个 jar 文件包含在第三个的类路径中。

      现在您可以从 jar A 和 Jar B 的 main 方法中复制相同的代码,并将其粘贴到 jar C 的 main 方法中。现在您只能运行 Jar C。

      【讨论】:

        【解决方案3】:

        但是有没有办法合并他们的 jar 文件,这样我就可以从 1 开始运行 罐子

        没有简单的方法,只能解压缩,然后获取所有要提取的 jar 文件的所有内容,然后再次压缩到一个 jar 中。

        您需要谨慎合并 Manifest.MF 文件,该文件定义了具有 main 方法的主类的入口点。

        注意:但我不确定你是否能够在 你的清单文件。您可能必须通过类路径执行 案例。

        【讨论】:

          【解决方案4】:

          我正在为 java 使用 netbeans。 您想要的最简单方法是创建新项目并将 2 个 jar 文件作为库添加到您的项目中

          【讨论】:

            最近更新 更多