使用编译器API编译Java项目

使用编译器API编译Java项目,java,command-line,compiler-construction,java-compiler-api,Java,Command Line,Compiler Construction,Java Compiler Api,我正在尝试使用编译器API动态编译整个java项目。我实现这一点的最初想法是首先知道如何使用命令行在一行中编译它,然后在编译器对象上应用相同的原理/参数。问题是,我从来没有使用CLI编译过。(使用IDE的缺点?哈哈) 那么,我走对了吗?此外,项目汇编能否在一行执行中实现?我很难弄明白这一点,因为这是一个项目,它包含大量的包。那么你想学习javac还是Java编译器API 如果需要编译,请查看javac(|) 对于API,则Java编译器API的编程使用肯定需要不止一行代码,这将使您获得编译器:

我正在尝试使用编译器API动态编译整个java项目。我实现这一点的最初想法是首先知道如何使用命令行在一行中编译它,然后在编译器对象上应用相同的原理/参数。问题是,我从来没有使用CLI编译过。(使用IDE的缺点?哈哈)


那么,我走对了吗?此外,项目汇编能否在一行执行中实现?我很难弄明白这一点,因为这是一个项目,它包含大量的包。

那么你想学习javac还是Java编译器API

如果需要编译,请查看javac(|)

对于API,则Java编译器API的编程使用肯定需要不止一行代码,这将使您获得编译器:

编译器=

然后,您仍然需要加载类,写出字节码,并可能将其打包为JAR


您应该使用,因为您可能有很多类要管理,在JavaCompiler javadoc的顶部有一个示例,但是搜索以找到更清晰的示例。

有什么原因不能使用像or这样的构建工具吗?“那么,我在正确的轨道上吗?”如果您首先在命令行中这样做是指“在正确的轨道上”,我看不出有什么意义。它在Java编译API中的实现方式在查找所有必需的源文件方面是完全不同的。它需要从内存中实现一个。@earcam我实际上是在学习实际的API,而不是开发一个需要我自己去做的项目。@AndrewThompson错误。compile方法的参数为“Iterable options”。这就是为什么我认为在CLI中成功地完成它意味着在API中成功。