Введение

Свободные реализации Java — это программные проекты, которые реализуют технологии Java от Oracle и распространяются под лицензиями свободного программного обеспечения, что делает их свободным программным обеспечением. Компания Sun выпустила большую часть исходного кода Java как свободное программное обеспечение в мае 2007 года, поэтому его теперь можно почти рассматривать как свободную реализацию Java. Реализации Java включают в себя компиляторы, среды выполнения, библиотеки классов и т.д. Сторонники свободного и открытого программного обеспечения называют свободные или открытые виртуальные машины Java свободными средами выполнения или свободными Java-средами выполнения. Некоторые сторонники этого движения предпочитают не использовать термин "Java" из-за связанных с ним проблем с товарными знаками. Поэтому, несмотря на то, что это "движение за свободную Java", они избегают термина "свободные Java-среды выполнения".

С середины 1990-х до 2006 года

Первым свободным проектом, предлагавшим значительные части функциональности платформы Java, вероятно, был guavac, разработка которого началась до ноября 1995 года. С тех пор движение свободного программного обеспечения создало другие компиляторы Java, наиболее заметным из которых является GNU Compiler for Java. К другим относятся Eclipse Java Compiler (ECJ), поддерживаемый Eclipse Foundation, и Jikes, который больше не активно поддерживается. Начиная с версии 4.3 GNU Compiler Collection, GCJ (его Java-компилятор) использует ECJ в качестве фронтенда для разбора Java-кода. Примеры свободных сред выполнения включают Kaffe, SableVM и gcj. GNU Classpath – основная библиотека классов свободного программного обеспечения для Java. Большинство свободных сред выполнения используют GNU Classpath в качестве своей библиотеки классов. В мае 2005 года был анонсирован Apache Harmony, однако проект выбрал лицензию Apache, которая в то время была несовместима со всеми существующими свободными реализациями Java. Другим событием в мае 2005 года стало объявление о том, что OpenOffice.org 2.0 будет зависеть от функций Java, которые не могли предоставить свободные реализации. После возникших споров OpenOffice.org принял руководство, требующее его работы со свободными реализациями Java. Примечательными приложениями, которые уже работали со свободными реализациями Java до ноября 2006 года, являются OpenOffice.org и Vuze, оба из которых работают при компиляции с помощью GCJ.

Объявление Sun за ноябрь 2006 года

13 ноября 2006 года компания Sun выпустила свой компилятор javac под лицензией GNU General Public License. По состоянию на сентябрь 2007 года, помимо javac, Sun также опубликовала исходный код HotSpot (виртуальной машины) и почти всю библиотеку классов Java как свободное программное обеспечение. Выполнив свое обещание выпустить полностью собираемый JDK, основанный преимущественно на свободном и открытом исходном коде в первой половине 2007 года, Sun опубликовала полный исходный код библиотеки классов под лицензией GPL 8 мая 2007 года, за исключением некоторых ограниченных частей, лицензированных Sun у третьих сторон, которые не желали распространять свой код под лицензией свободного программного обеспечения. Sun заявила о намерении заменить оставшиеся проприетарные и закрытые части исходного кода альтернативными реализациями и сделать библиотеку классов полностью свободной и открытой. Поскольку в JDK присутствует код с ограничениями по лицензированию, Sun продолжит использовать его в коммерческих релизах до тех пор, пока он не будет заменен полностью функциональными альтернативами с открытым исходным кодом.