2012-06-08 5 views
0

У меня есть следующие, код, который используется для компиляции отдельных файлов с JavaCompiler:Составление каталогов с JavaCompiler

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); 
DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>(); 
StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null); 
Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromStrings(Arrays.asList(file.getAbsolutePath())); 
JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, diagnostics, null, null, compilationUnits); 
boolean success = task.call(); 
fileManager.close(); 

Мой вопрос: Как я могу изменить это, чтобы собрать все исходные файлы в определенном каталоге?

+0

Для лучшей помощи раньше, опубликовать [SSCCE] (http://sscce.org/). –

ответ

1

Получить все файлы из каталога (с помощью directory.listFiles()), и передать результирующий массив getJavaFileObject(File...)

+0

Это дает мне: Исключение в потоке java.lang.IllegalArgumentException "АВТ-EventQueue-0": каталоги не поддерживаются \t в com.sun.tools.javac.util.DefaultFileManager $ RegularFileObject.

+0

Обязательно отфильтровывайте ненужные файлы с помощью listFiles (FileFilter): http://docs.oracle.com/javase/6/docs/api/java/io/File.html#listFiles%28java.io.FileFilter% 29. Вам действительно нужно научиться читать API-документ. Он предназначен для чтения. –