创建 2 个可运行的 JAR,它们使用相同的库而不需要它们两次

Create 2 runnable JARs who use the same libraries without having them twice

我有以下问题:

我在 Eclipse 中有一个后端 Java 项目,其中有 2 个主要功能,我想制作可运行的 jars。这两个 jar-to-be 共享一些代码,所以我不能将它们放在单独的项目中。一个 jar 是一个 cms,一个 jar 是一个网络服务器,供 android 应用程序连接。

Java 项目包含一个文件夹,其中包含使用 CMS 时创建的资产(图片、视频...)。我希望它们不要包含在 jar 中,因为在使用 jar 时需要将它们作为同一目录中的文件夹进行访问。

该项目使用了很多库,所有不同的 jar。我希望我导出的 2 个 jar 与库使用相同的文件夹。但是当我导出我需要的 2 个 jar 时,它们都有一个包含相同库的文件夹,并且该文件夹具有我导出的带有 _lib 后缀的 jar 的名称。是否可以让我的两个 jar 与库一起使用同一个文件夹?

现在,我通过右键单击我的项目 > 导出 > 检查 "Copy required libraries in a sub-folder next to the generated JAR" > 完成来使用 Eclipse 导出

在此先感谢您的帮助。

编辑:如果我只是暂时删除资产文件夹并将其复制粘贴到我的 jar 旁边,它不会包含在 jar 中,但它仍然有效。这就留下了如何让 2 个罐子使用相同的库的问题?

创建一个驱动程序 class,使用如下所示的主要方法:

public class Driver {
    public static void main (String[] args) {
        if (args[0].equalsIgnoreCase("optionForClass1")) {
            FirstClass.main(null);
        else {
            SecondClass.main(null);
        }
    }
}

要将参数传递给各自的主要函数,您可以使用系统属性,它是 VM 全局的。使用 System.getProperty("String") 或您拥有的方式访问它们。

好的,我解决了我的两个问题:

问题 1:创建一个没有资产文件夹的可执行 jar 文件

解决方案:将 assets 文件夹复制到 jar 目标文件夹,并暂时从 eclipse 项目中删除 jar 文件夹。现在创建可执行 jar。之后您可以恢复项目中的文件夹。

问题 2:创建 2 个使用相同依赖项的可执行 jar 文件,它们都使用相同的库文件夹

解决方案:通过右键单击我的项目 > 导出 > 检查 "Copy required libraries in a sub-folder next to the generated JAR" > 完成,在 eclipse 中创建第一个 jar 文件。为 Jar 选择名称时,请选择您希望 libs 文件夹具有的名称。如果我选择名称 "project",则 libs 文件夹将为 "project_libs"。 导出 jar 并根据需要重命名。 现在创建第二个 jar,其名称与第一个 jar 的名称相同,在本例中为 "project"。因此,如果我再次选择 "project" 作为名称,它将创建相同的文件夹 "project_libs" 并且您的两个罐子都可以使用它们。只需将您的第二个罐子重命名为您喜欢的名称即可。