# 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,构造参数,进行编译。