我创建了一个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,这些罐子也不会被捡起。
有什么想法吗?