If 'javac' task is used with fork option then , javac will run in his own process and memory should be directly assigned to the javac using 'memoryinitialsize' and 'memorymaximumsize':
javac srcdir="${src}"
destdir="${classes}"
source="1.6"
debug="true"
fork="true"
deprecation="off"
memoryinitialsize="512m"
memorymaximumsize="1024m"