Как подсказал Гарри Джой, вы можете использовать ANT.Вероятно, он имел в виду не использование его из командной строки соответственно с файлом build.xml, а использование его непосредственно из вашей Java-программы.Таким образом, вы получите доступ к функциональности 'fileset / exclude / include ...', имеющейся в ant, и сэкономите много кода.
Пример, псевдокод (не проверен и, вероятно, даже не компилируется,просто как подсказка):
Project p = new Project();
p.init();
p.addBuildListener( new SimpleBuildListener() );
p.setBaseDir( new File( "." ).getAbsoluteFile() );
Javac task = (Javac) p.createTask( "javac" );
task.srcdir( srcDirPath );
// Filsets can be built this way
FileSet set = new FileSet();
set.setDir( srcDirPath );
set.setIncludes( "**/*.java" );
task.addFileset( set );