类未找到同一JAR中的依赖关系JAR

时间:2018-07-07 17:47:46

标签: ant manifest executable-jar

我创建了一个JAR文件,在其中添加了所有类,并在同一JAR文件中添加了相关的JAR。我正在使用ANT Script创建此JAR,而我的JAR节看起来像下面的

<jar destfile="${dist.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
    <manifest>
        <attribute name="Class-Path" value=". commons-codec-1.11.jar commons-io-2.4.jar commons-lang3-3.7.jar "/>
        <attribute name="Main-Class" value="application.Main"/>
    </manifest>
</jar>

当我使用ANT脚本按项目进行构建时,该操作成功完成,并且JAR文件已完美创建。

当我使用命令执行jar时:

$ java -jar myProject.jar

它正在成功地盯着我的项目,但是一旦它需要依赖项JAR文件,它就会失败并出现错误:

Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

即使我的清单节中包含了Class-path,这些罐子也不会被捡起。

有什么想法吗?

0 个答案:

没有答案