CARVIEW |
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.
Note: As of build 24, We have restructured the source code so that javac, javadoc, javah, javap, and apt now all live in a new repository called langtools.
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 https://hg.openjdk.java.net/.
- The master sources are in https://hg.openjdk.java.net/jdk7/jdk7/langtools.
- We integrate to the master repositories through the "tl" forest, so the very latest sources for the compiler are in https://hg.openjdk.java.net/jdk7/tl/langtools. The integrations normally happen bi-weekly; you can see the integration schedule for JDK 7 here.
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.
You can browse the compiler sources with OpenGrok. Currently, this is based on the initial OpenJDK release of the compiler, and so is not completely up to date.
Documentation
- If you've cloned the
langtools
repository, here's how to ... - How to ...
- User Guide
- Overview of the compiler's operation
- So you want to change the Java Programming Language...
- So you want to change "javac" ...
Resources
The following links are for resources about the compiler, provided by non-Sun contributors.
Note: Since the OpenJDK project is going through changes, these resources may not always be completely up to date.
- Hacking the OpenJDK compiler by Alexander Hristov
Related Projects
Community
- Mailing lists
- Kitchen Sink Language (KSL)
- Compiler bloggers
- Alumni
Terms of Use · Privacy · Trademarks