使用JavaCompiler编译包

使用JavaCompiler编译包,java,compilation,Java,Compilation,使用java程序,我需要编译一个包含一组.java文件的包,编译后我需要将.class文件移动到一个单独的文件夹中 我决定使用JavaCompiler,而不是使用ProcessBuilder类从命令行执行Java编译。我是JavaCompiler新手,我第一次成功地一次编译了一个.java文件。但是我不知道如何设置类路径(-classpath)、目标文件夹(-d)和包级编译的.java文件列表 有谁能告诉我如何设置上述选项吗?正如Harry Joy所建议的,您可以使用ANT。他的意思可能不是分别

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

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


有谁能告诉我如何设置上述选项吗?

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