使用JavaCompiler编译包

时间:2011-04-27 05:53:54

标签: java compilation

使用java程序,我需要编译一个包含.java个文件的包,编译后我需要将.class个文件移动到一个单独的文件夹中。

我没有使用ProcessBuilder类从命令行执行Java编译,而是决定使用JavaCompiler。我是JavaCompiler的新手,我第一次成功编译了一个.java文件。但我不知道如何设置类路径(-classpath),目标文件夹(-d)和.java文件列表进行包级别编译。

有人可以告诉我如何设置上述选项吗?

1 个答案:

答案 0 :(得分:1)

根据Harry Joy的建议,您可以使用ANT。他可能的意思是不是从命令行分别使用build.xml文件,而是直接从java程序中使用它。 通过这种方式,您可以访问ant中的'fileset / exclude / include ...'功能,并节省大量代码。

示例,伪代码(未经过测试,可能甚至没有编译,就像提示一样):

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 );