[Ant]Não roda java

Olá:

Suponham a seguinte classe:


import java.util.Date;

import javax.swing.JOptionPane;

import org.apache.commons.lang.ObjectUtils;

public class Teste {

    public static void main(String[] args) {
        JOptionPane.showMessageDialog(null, "Agora São\n"
                + ObjectUtils.toString(new Date()));
        System.exit(0);
    }
}

O pacote org.apache.commons.lang.ObjectUtils vem do Commons Lang. O fonte fica no diretório src e o jar do Commons Lang no diretório lib. O buildfile fica no diretório raiz e é o seguinte:

<?xml version="1.0" encoding="UTF-8"?>
<project name="testant" default="build" basedir=".">
    <property name="src.dir" location="src"/>
    <property name="bin.dir" location="bin"/>
    <property name="lib.dir" location="lib"/>
    <property name="jar.dir" location="."/>
    <property name="jar.name" value="teste.jar"/>
    <property name="jar.file" location="${jar.dir}/${jar.name}"/>

    <path id="classpath">
        <fileset dir="${lib.dir}" >
            <include name="**/*.jar"/>
        </fileset>
    </path>

    <target name="init">
        <mkdir dir="${bin.dir}"/>
    </target>

    <target name="clean">
        <delete dir="${bin.dir}"/>
        <delete file="${jar.file}"/>
    </target>

    <target name="build" depends="init">
        <javac destdir="${bin.dir}">
            <src path="${src.dir}"/>
            <classpath refid="classpath"/>
        </javac>
    </target>
    
    <target name="jar" depends="build" description="--> cria Jar">
        <jar destfile="${jar.file}" basedir="${bin.dir}" update="true">
            <manifest>
                <attribute name="Main-Class" value="Teste"/>
            </manifest>
        </jar>
    </target>

    <target name="runjava" depends="build">
         <java fork="true" dir="${bin.dir}" classname="Teste" >
            <classpath refid="classpath"/>
        </java>
    </target>

    <target name="runjar" depends="jar">
        <java fork="yes" jar="${jar.file}">
            <classpath refid="classpath"/>
        </java>
    </target>

</project>

Quando rodo o targets build e jar, tudo ocorre corretamente. O problema é ao executar o programa. O usar a task runjava aparece a seguinte mensagem:

Ao rodar runjar aparece isso:

O curiooso é que se eu reescrever a classe de forma a tirar referência ao ObjectUtils:


import java.util.Date;

import javax.swing.JOptionPane;

public class Teste {

    public static void main(String[] args) {
        JOptionPane.showMessageDialog(null, "Agora São\n"
                + new Date());
        System.exit(0);
    }
}

e rodar runjar, o programa é executado coretamente, mas o runjava continua apresentando o mesmo erro de antes.
Creio que devo estar cometendo algum erro elementar, mas não consigo descobrir o quê. Se fosse erro na configuração do classpath não teria sequer compilado.