Javac — оптимизирующийSpecial edition Using Java, 1996], ISBN 0-7897-0604-0, Chapter 3 "The javac compiler is an optimizing compiler and is the one you will usually use. " компилятор языка java, включенный в состав многих Java Development Kit (JDK).

Компилятор принимает исходные коды, соответствующие спецификации Java language specification (JLS), и возвращает байт-код, соответствующий спецификации Java Virtual Machine Specification (JVMS).

Javac написан на Java. Может вызваться непосредственно из java-программ (JSR 199).

История Javac входил в состав JDK с первой версии.

13 ноября 2006 г. корпорация Sun Microsystems сменила лицензию Java Virtual Machine (JVM) и Java Development Kit (JDK) на GPL v2.Sun’s OpenJDK Hotspot page

GNU Classpath начиная с версии 0.95 поддерживает компилирование и запуск javac при помощи GIJ и GCJ. Также поддерживается компиляция самой библиотеки Classpath, её утилит и примеров.«This release supports compiling and running the GPL OpenJDK javac compiler[…]»

Структура javac Исполнение javac разбито на следующие фазы:The Hacker’s Guide to Javac, 2008

parse — лексический и синтаксический анализ, генерация абстрактного синтаксического дерева, enter — регистрация символов всех классов, определенных в программе, process annotations — обработка аннотаций, attribute — проверка типов, разрешение имен классов, свертка констант, вывод типов, flow — анализ потока управления (достижимость операций), анализ обработки исключений, проверка обращений к неинициализированным данным, проверка корректности инициализации final переменных, desugar — удаление синтаксического сахара (вложенные классы, классовые литералы, assert, foreach), generate — создание файла .class.

См. также Java Platform OpenJDK GNU Compiler for Java

Примечания

Ссылки Sun’s OpenJDK javac page The Java Virtual Machine Specification JSR 199 Java Compiler API Java Specification Request for invoking the Java compiler from a Java program David Erni and Adrian Kuhn, The Hacker’s Guide to Javac // University of Bern, March 2008

Категория:Компиляторы Java Категория:Свободное программное обеспечение, написанное на Java