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

时间:2015-01-07 17:13:44

标签: java eclipse maven jar runnable

我有以下问题:

我在Eclipse中有一个后端Java项目,有两个主要功能,我想制作可运行的jar。这两个罐子将共享一些代码,所以我不能把它们放在单独的项目中。一个jar是一个cms,一个jar是一个用于连接Android应用程序的web服务器。

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

该项目使用了相当多的库,所有不同的罐子。我想要导出的2个罐子与库使用相同的文件夹。但是当我导出我需要的2个罐子时,它们都有一个包含相同库的文件夹,该文件夹具有我用_lib-suffix导出的jar的名称。是否可以让我的两个罐子与库使用相同的文件夹?

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

提前感谢您的帮助。

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

2 个答案:

答案 0 :(得分:1)

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

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 :(得分:1)

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

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

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

问题2:使用相同的libs文件夹创建2个可执行jar文件,这两个文件使用相同的依赖关系

解决方案:通过右键单击我的项目>在eclipse中创建第一个jar文件出口>选中“在生成的JAR旁边的子文件夹中复制所需的库”>完。为Jar选择名称时,请选择希望libs文件夹具有的名称。如果我选择名称“project”,则libs文件夹将为“project_libs”。 导出jar并根据需要重命名。 现在创建第二个jar,其名称与您创建的第一个jar,在这种情况下为“project”。因此,如果我再次选择“project”作为名称,它将创建相同的文件夹“project_libs”,并且您的两个罐子都可以使用它们。只需将您的第二个罐子重命名为您喜欢的任何名称即可。