Скомпилируйте пакет, используя JavaCompiler - PullRequest
0 голосов
/ 27 апреля 2011

Используя java-программу, мне нужно скомпилировать пакет с группой .java файлов, после компиляции мне нужно переместить .class файлы в отдельную папку.

Вместо использования ProcessBuilder класса для выполнения компиляции Java из командной строки, я решил использовать JavaCompiler. Я новичок в JavaCompiler, и мне удалась первая попытка скомпилировать один .java файл за раз. Но я не знаю, как установить classpath (-classpath), папку назначения (-d) и список файлов .java для компиляции на уровне пакета.

Может кто-нибудь объяснить мне, как установить вышеупомянутые параметры?

1 Ответ

1 голос
/ 27 апреля 2011

Как подсказал Гарри Джой, вы можете использовать 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 );
...