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

标签 java eclipse maven jar runnable

我有以下问题:

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

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

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

现在,我通过右键单击我的项目 > 导出 > 选中“在生成的 JAR 旁边的子文件夹中复制所需的库”来使用 Eclipse 导出 > 完成

在此先感谢您的帮助。

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

最佳答案

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

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") 或您有什么访问它们。

关于java - 创建 2 个可运行的 JAR,它们使用相同的库而不需要它们两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27824835/

相关文章:

java - org.xml.sax.SAXParseException;cvc-complex-type.2.4.c : The matching wildcard is strict, 但找不到声明

java - 在 Maven 中导入包时排除特定类

java - 如何使用 JQuery 和 Bootstrap 布局 json 对象数组

导入项目、执行 jUnit 测试等后 Eclipse 无声地崩溃

java - JTextField : How to validate number input in JTextField

java - Eclipse 上的 WildFly 8 - 是否需要安装所有 JBoss 工具插件?

java - Eclipse IDE 支持 Java 14 早期访问版本

java - maven 忽略了 uniqueVersion 标签

java - 我正在尝试使用 ListView 将 MySQL 表中的数据显示到我的 Android 应用程序,但它现在正在显示数据

java - 从 JPanel 对象获取 Parent Frame 对象