Este es un error poco documentado, que puede tenerte un rato largo mirando como un loco, al compilar nuestro proyecto con ant aparece un build failed y el mensaje "Error starting modern compiler". El problema, al menos en mi caso ha sido el siguiente, yo usaba un jdk instalado en una carpeta aleatoria c:\sun\jdk, en el cual el fichero java y javac, tenían la misma version, me apareció una actualizacion de la maquina de java de estas que salen en windows cada X tiempo que solo me actualizó el jre del sistema. Con esto lo que pasó es que al ejecutar java -version y javac -version en una ventana cmd las versiones no concordaban, y aunque en el path estuviera el jdk inicial mio, windows lo ignora ya que toma por prioritario el jre seleccionado en Panel de Control/Java. La solución a esto fue instalar el jdk de la versión que tenía de jre. Al realizar esta actualizacion los comandos java y javac vuelven a tener la misma version y entonces ant deja de decir que el compilar es "moderno".
Un saludo