0

重複の可能性:
JAR がクラスパスにあるときに Ant が「NoClassDefFound」と言うのはなぜですか?

現在、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 ファイルです` Tic Tac Toe - 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 ファイルは、必要な 2 つの jar を含む lib サブディレクトリを含むディレクトリですか? スクリプトの外観から、それは dist ディレクトリに構築されており、メインの jar に対して必要な lib ディレクトリがあるようには見えません。

于 2013-01-19T00:49:41.860 に答える