Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用具有内部jar文件的内部jar文件构建可运行的jar?_Java_Eclipse_Maven_Jar - Fatal编程技术网

Java 如何使用具有内部jar文件的内部jar文件构建可运行的jar?

Java 如何使用具有内部jar文件的内部jar文件构建可运行的jar?,java,eclipse,maven,jar,Java,Eclipse,Maven,Jar,我有一个巨大的项目(应用程序),里面有另一个项目(核心)。应用程序和Core内部都有一大组库。我使用的是Eclipse,所以我使用Export Runnable Jar选项来创建Application.Jar,但当我运行它时,部分代码使用了内核,该内核依赖于其中的图像库。当我查看可运行jar文件时,应用程序项目的所有库都在那里,但当我查看核心项目jar文件时,库不在那里。为了让您了解我的意思,我期望的结构如下所示: Application - Core.jar + ImageLibr

我有一个巨大的项目(应用程序),里面有另一个项目(核心)。应用程序和Core内部都有一大组库。我使用的是Eclipse,所以我使用Export Runnable Jar选项来创建Application.Jar,但当我运行它时,部分代码使用了内核,该内核依赖于其中的图像库。当我查看可运行jar文件时,应用程序项目的所有库都在那里,但当我查看核心项目jar文件时,库不在那里。为了让您了解我的意思,我期望的结构如下所示:

Application
  - Core.jar
    + ImageLibrary.jar
    + OtherLibraries.jar
    :
  + OtherLibraries.jar
  :
我正在使用Maven单独构建项目。但我并不是Maven的专家,因为我只使用了很短的时间

是否有可能构建应用程序,以便Core也有自己的库

提前感谢,,
Alexei Blue。

在Maven应用程序构建中,核心是否未指定为依赖项?如果是这样的话,它应该包含在它的所有依赖项中。您可能应该检查依赖项本身在Maven中是否具有要包括的正确范围

好的,所以我最后想出了这个。当我使用Maven构建项目时,它正在这样做,然后没有在eclipse中更新构建路径。因此,我在运行的核心目录中:

# mvn clean install 
# mvn eclipse:eclipse
由于映像库是对核心依赖项的补充,因此我必须确保设置了eclipse的构建路径,否则eclipse将不会接受更改。eclipse:eclipse命令为我做到了这一点,但我认为它只适用于作为一个模块的项目,但是它从pom文件中读取任何依赖项,并确保您的项目可以查看和访问它们

然后在应用程序目录中,我重新构建了项目:

# mvn clean install
然后在eclipse中,我将应用程序项目导出为一个运行良好的Jar

希望这能帮助有同样问题的人

干杯,
Alexei Blue。

重复和其他几个问题检查可执行jar中的清单这应该包括正在使用的类路径很可能核心中的jar没有包含,因此它们被忽略。我检查了清单文件,但核心不在其中(希望我说的对,只有一个清单文件)。然而,内核被声明为与我的pom.xml相关,所以Maven应该选择它。它可以访问Core中的类,当Core调用映像库中的类时,它抛出ClassNotFoundException。是的,依赖项在我的pom.xml文件中,Maven应该选择它。但是,由于某种原因,它没有出现在清单中。没有出现在清单中,或者没有出现在整个jar/war/ear本身中?内核没有出现在清单中,但是jar文件出现在可运行的jar中