使用java程序,我需要编译一个包含.java
个文件的包,编译后我需要将.class
个文件移动到一个单独的文件夹中。
我没有使用ProcessBuilder
类从命令行执行Java编译,而是决定使用JavaCompiler
。我是JavaCompiler
的新手,我第一次成功编译了一个.java
文件。但我不知道如何设置类路径(-classpath
),目标文件夹(-d
)和.java文件列表进行包级别编译。
有人可以告诉我如何设置上述选项吗?
答案 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 );