From the
Ant manual - Jar task , in the Jar File Execution section.
When using the jar attribute, all classpath settings are ignored according to Sun's specification.
From the specification link :
-jar
Execute a program encapsulated in a JAR file. The first argument is the name of a JAR file instead of a startup class name. In order for this option to work, the manifest of the JAR file must contain a line of the form Main-Class: classname. Here, classname identifies the class having the public static void main(String[] args) method that serves as your application's starting point. See the Jar tool reference page and the Jar trail of the Java Tutorial for information about working with Jar files and Jar-file manifests.
When you use this option, the JAR file is the source of all user classes, and other user class path settings are ignored.
Note that the jar file's manifest can specify jars to be in the classpath, see
Tutorial on jar file classpath