The Java programming-language compiler (javac) group

This group is comprised of developers involved in the design, implementation, and maintenance of the Java programming language compiler (javac) and associated components.

Introduction

The Java programming-language compiler (javac) reads source files written in the Java programming language, and compiles them into bytecode class files. Optionally, the compiler can also process annotations found in source and class files using the Pluggable Annotation Processing API. The compiler is a command line tool but can also be invoked using the Java Compiler API.

The compiler accepts source code defined by the Java Language Specification (JLS) and produces class files defined by the Java Virtual Machine Specification (JVMS).

Source Code

The compiler source code is available in the OpenJDK Mercurial repositories, at http://hg.openjdk.java.net/.

For general information about the OpenJDK repositories, and how to clone them, see The OpenJDK Developer's Guide. For the compiler, you can download and build it as part of a complete JDK forest, or you can just download and build the langtools repository to build a standalone version of the compiler.

Note that the code for the native launcher for javac is shared with all the other JDK tools, and lives in the JDK repository. If you just download and build the langtools repository, you will get an executable jar file which you can invoke directly with the java command, or with a simple shell script that is provided. Windows users will need Cygwin or similar packages to run the shell script.

Documentation

Resources

The following links are for resources about the compiler, provided by non-Oracle contributors.

Note: Since the OpenJDK project is going through changes, these resources may not always be completely up to date.

Related Projects

Community