¿Por qué Ant dice "NoClassDefFound" cuando mi JAR está en classpath?

Estoy usando Java 1.6, Eclipse y Ant.

El siguiente es mi objetivo para crear un archivo jar y ejecutarlo:

    <!-- Settings -->
    <property file="build.properties" />
    <path id="classpath">
        <fileset dir="${lib.dir}" includes="**/*.jar" />
    </path>

    <!-- Compile -->
    <target name="compile">
        <mkdir dir="${classes.dir}" />
        <javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false">
            <classpath refid="classpath" />
        </javac>
    </target>

    <!-- Package .jar -->
    <target name="jar">
        <mkdir dir="${jar.dir}" />
        <jar destfile="${jar.dir}/App.jar" basedir="${classes.dir}">
            <manifest>
                <attribute name="Main-Class" value="main.App" />
            </manifest>
        </jar>
    </target>

    <!-- Run .jar -->
    <target name="run">
        <java jar="${jar.dir}/App.jar" fork="true" />
    </target>

El problema es que cuando ejecuto este jar (a través de Ant o línea de comandos) recibo el error:

Exception in thread "main" java.lang.NoClassDefFoundError: net/xeoh/plugins/base/impl/PluginManagerFactory
     [java]     at plugins.PluginLoader.<clinit>(Unknown Source)

Algunas cosas que pueden ser útiles para saber:

Cuando imprimo mi classpath, muestra que todos los JAR necesarios están allí; también muestra la versión GUI de Eclipse de la ruta de clase.

He intentado limpiar el proyecto (a través de Eclipse y Ant) en vano.

La biblioteca .jar que parece faltar esno un .jar en un .jar (lo que parece ser un problema común).

Este es el único error. Otras clases parecen encontrar la biblioteca bien ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta