0
可能重复:
Why does Ant say “NoClassDefFound” when my JAR is on the classpath?创建可运行的Jar文件。 (java.lang.NoClassDefFoundError)
目前,我有我在我的Ant编译3个java文件。它使用的是Java GUI,因此它依赖于2个.jar文件。使用javac和jar编译在Ant中正常工作。但是,一旦我双击jar文件来运行它,它就不会运行。当我尝试在Ant中使用Java运行它时,会发生以下错误。
[java] Exception in thread "main" java.lang.NoClassDefFoundError: org/jdesktop/layout/GroupLayout$Group
[java] at tictactoe.General.main(Unknown Source)
[java] Caused by: java.lang.ClassNotFoundException: org.jdesktop.layout.GroupLayout$Group
等...
这是我的Ant文件` 井字 - CIS3760A1
<path id="classpath">
<fileset dir="lib" includes="*.jar" />
</path>
<target name="init">
<mkdir dir="build" />
<mkdir dir="dist" />
</target>
<target name="compile" depends="init">
<javac srcdir="src" destdir="build" classpathref="classpath" includeantruntime="false" />
</target>
<target name="jar" depends="compile">
<jar destfile="dist/CIS3760A1.jar" basedir="build">
<manifest>
<attribute name="Main-Class" value="tictactoe.General"/>
<attribute name="Class-Path" value="lib/org-jdesktop-layout.jar lib/swing-layout-1.0.4.jar"/>
</manifest>
</jar>
</target>
<target name="clean">
<delete dir="build" />
<delete dir="dist" />
</target>
<target name="run" depends="jar">
<java jar="dist/CIS3760A1.jar" fork="true" classpathref="classpath" />
</target>
`
在“运行”目标中指定类路径参数没有意义。当在命令行中指定-jar时,-classpath选项将被忽略。请参阅工具文档。 – EJP