0

可能重复:
当我的 JAR 在类路径上时,为什么 Ant 会说“NoClassDefFound”?

我目前有 3 个在 Ant 中编译的 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

ETC...

这是我的 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>

`

4

1 回答 1

2

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

于 2013-01-19T00:49:41.860 回答