En Java7 se añadió una nueva funcionalidad, una serie de clases e interfaces que te permiten monitorizar la nueva entrada de ficheros a un directorio(entre otras cosas), te recomiendo leer la documentación respecto a estas nuevas clases e interfaces.
Código Java:
Ver originalWatchable
WatchEvent<T>
WatchEvent.Kind<T>
WatchKey
WatchService
Yo te recomendaría utilizar hilos por lo beneficios que puedas obtener, sobre todo por conectividad, para obtener información sobre que está haciendo el hilo, o cuantos ficheros lleva procesados...etc, si es un programilla independiente, obtener información del mismo es bastante mas complicado.
Ya que el hilo realiza todas sus tareas en segundo plano, te recomiendo leer sobre el patrón Observer para poder monitorizar y recibir información del hilo.
Saludos.