# javac
# javac介绍
javac是java compiler也就是java编译器,能够把Java源代码编译成jvm可以识别运行的字节码文件。
# javac使用
普通开发者一般不会直接使用到javac,编译打包都是通过maven、ide等方式进行的,maven和ide的编译内部也是通过javac来进行编译。 了解javac的使用更有助于我们了解maven的编译参数等细节。
# 命令行使用
javac [ options ] [ sourcefiles ] [ classes] [ @argfiles ]
# 内存编译器
除了通过命令行编译java代码,还可以使用API接口编译代码,从而可以在运行时编译出字节码,能够实现类似动态脚本的编译运行能力。
# javac实现原理
# maven compile是如何实现的
mvn compile会调用到org.apache.maven.plugin.compiler.CompilerMojo
CompilerMojo调用到org.codehaus.plexus.compiler.javac.JavacCompiler
,
JavacCompiler会通过反射调用com.sun.tools.javac.Main
,构造参数,进行编译。