The Java programming language Compiler Group

This group is comprised of developers involved in the design, implementation, and maintenance of the javac compiler for the Java programming language, and associated components such as javadoc and javap.


The javac compiler reads source files written in the Java programming language, and compiles them into class files. The Java programming language is defined by The Java Language Specification (JLS) and class files are defined by The Java Virtual Machine Specification (JVMS).

Optionally, the compiler can also process annotations found in source and class files using the Pluggable Annotation Processing API (JSR 269).

The compiler is a command-line tool but can also be invoked using the Java Compiler API (JSR 199).

Source Code

The javac compiler source code is available in the OpenJDK repositories, at

For general information about the OpenJDK repositories, and how to clone them, see The OpenJDK Developer's Guide.

Note that the code for the native launcher for javac is shared with all the other JDK tools, and is customized for javac during the build.


Issues are tracked in the JDK Bug System. Most compiler bugs are tracked in the tools component, javac subcomponent.




The following links are for resources about the compiler, provided by non-Oracle contributors. These resources may not be completely up to date.

Related Projects