几个小时后,尽管我已经阅读了大量文档和stackoverflow问题,但我已经无计可施。 我确定我错过了一些显而易见的东西,但我就是想不出来。
我创建了许多Java文件,包括一个带有主方法的单入口点类。该类还使用了一个“库”类,该类位于mylib.jar中的com.test.lib.MyLibraryClass.class中。 我正在使用以下ant XML成功构建my jar文件。
执行该目标后,当我检查所创建的jar文件时,我发现它确实包含了所有的.class文件以及mylib.jar。
但是当我尝试运行这个jar文件时,出现了以下错误:
我需要做出哪些更改?我是否生成了格式错误或不完整的清单文件?非常感谢!
我创建了许多Java文件,包括一个带有主方法的单入口点类。该类还使用了一个“库”类,该类位于mylib.jar中的com.test.lib.MyLibraryClass.class中。 我正在使用以下ant XML成功构建my jar文件。
<target name="jar" depends="compile">
<jar destfile="${jar.dir}/${jar.name}.jar">
<fileset dir="${classes.dir}" />
<fileset dir="${lib.dir}" />
<manifest>
<attribute name="Main-Class" value="${main-class}" />
<attribute name="Class-Path" value="mylib.jar"/>
</manifest>
</jar>
</target>
执行该目标后,当我检查所创建的jar文件时,我发现它确实包含了所有的.class文件以及mylib.jar。
但是当我尝试运行这个jar文件时,出现了以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com/test/lib/MyLibraryClass
at com.mytest.MyMain.<init>(Unknown Source)
at com.mytest.MyMain.main(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.test.lib.MyLibraryClass
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 2 more
我需要做出哪些更改?我是否生成了格式错误或不完整的清单文件?非常感谢!