创建可运行的Jar文件。(java.lang.NoClassDefFoundError)

创建可运行的Jar文件。(java.lang.NoClassDefFoundError),java,swing,user-interface,ant,jar,Java,Swing,User Interface,Ant,Jar,可能重复: 我目前有3个java文件,我正在用Ant编译。它使用的是JavaGUI,因此它依赖于2.jar文件。使用javac和jar进行编译在Ant中运行良好。但一旦我双击jar文件来运行它,它就不会运行了。当我尝试在Ant中使用Java运行它时,会出现以下错误 [java] Exception in thread "main" java.lang.NoClassDefFoundError: org/jdesktop/layout/GroupLayout$Group [java]

可能重复:

我目前有3个java文件,我正在用Ant编译。它使用的是JavaGUI,因此它依赖于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文件` Tic Tac Toe-CIS3760A1



`

JAR文件是一个包含lib子目录和2个必需JAR的目录吗?从脚本的外观来看,它正在构建到一个dist目录中,并且它似乎没有相对于主jar所需的lib目录。

在“run”目标中指定classpath参数没有意义。在命令行上指定-jar时,将忽略-classpath选项。请参阅工具文档。
    <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>