Бесплатные реализации Java — это программные проекты, которые реализуют технологии Java компании Oracle и распространяются по лицензиям свободного программного обеспечения , что делает их свободным программным обеспечением . Sun выпустила большую часть своего исходного кода Java как свободное программное обеспечение в мае 2007 года, поэтому теперь его можно считать практически свободной реализацией Java. [1] Реализации Java включают компиляторы, среды выполнения, библиотеки классов и т. д. Сторонники свободного и открытого программного обеспечения называют свободное или открытое программное обеспечение виртуальной машины Java свободными средами выполнения или свободными средами выполнения Java .
Некоторые сторонники этого движения предпочитают не использовать термин «Java», поскольку с ним связаны проблемы с товарными знаками . Поэтому, хотя это и «движение за свободную Java», термин «свободные среды выполнения Java» они избегают.
Первым бесплатным проектом, предлагающим существенную часть функциональности платформы Java, вероятно, был guavac, который начался незадолго до ноября 1995 года. [2] [3]
С тех пор движение за свободное программное обеспечение разработало другие компиляторы Java, наиболее заметным из которых является GNU Compiler for Java . Другие включают Eclipse Java Compiler (ECJ), который поддерживается Eclipse Foundation , и Jikes , который больше не поддерживается активно. Начиная с выпуска GNU Compiler Collection 4.3, GCJ (его компилятор Java) использует интерфейс парсера ECJ для разбора Java. [4]
Примерами бесплатных сред выполнения являются 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.
13 ноября 2006 года компания Sun выпустила свой компилятор javac под лицензией GNU General Public License . [5]
По состоянию на сентябрь 2007 года, помимо javac, Sun выпустила код HotSpot ( виртуальной машины ) и почти всю библиотеку классов Java в качестве свободного программного обеспечения.
После своего обещания выпустить полностью собираемый JDK , основанный почти полностью на свободном и открытом исходном коде в первой половине 2007 года, [6] Sun выпустила полный исходный код библиотеки классов под лицензией GPL 8 мая 2007 года, за исключением некоторых ограниченных частей, которые были лицензированы Sun у третьих лиц, которые не хотели, чтобы их код был выпущен под лицензией свободного ПО. [7] Sun заявила, что она намерена заменить части, которые остаются проприетарными и с закрытым исходным кодом, альтернативными реализациями и сделать библиотеку классов полностью свободной и с открытым исходным кодом. Поскольку в JDK есть некоторый обремененный код , Sun продолжит использовать этот код в коммерческих выпусках, пока он не будет заменен полностью функциональными бесплатными и открытыми альтернативами.
По состоянию на май 2008 года единственной частью библиотеки классов, которая остается проприетарной (4% по состоянию на май 2007 года для OpenJDK 7, [8] [9] и менее 1% по состоянию на май 2008 года в OpenJDK 6 [10] [11] ), является реализация SNMP . [12]
Начиная с первого релиза в мае 2007 года, Sun Microsystems при поддержке сообщества выпустила в качестве свободного программного обеспечения (или заменила альтернативными свободными программными обеспечениями) почти весь обременительный код:
Из-за этих ранее обремененных компонентов было невозможно собрать OpenJDK только с компонентами свободного ПО. Чтобы иметь возможность сделать это до того, как вся библиотека классов станет бесплатной, и иметь возможность объединить OpenJDK в Fedora Core и других свободных дистрибутивах Linux , Red Hat начала проект под названием IcedTea . По сути, это гибрид OpenJDK/ GNU Classpath , который можно использовать для загрузки OpenJDK с использованием только свободного ПО. [23] [24]
По состоянию на март 2008 года дистрибутив Fedora 9 был выпущен с OpenJDK 6 вместо реализации IcedTea OpenJDK 7. [11] Некоторые из заявленных причин этого изменения:
В июне 2008 года было объявлено, что IcedTea 6 (как упакованная версия OpenJDK в Fedora 9 ) прошла тесты Technology Compatibility Kit и может претендовать на звание полностью совместимой реализации Java 6. [25] [ необходима цитата ]
В сентябре 2013 года Azul Systems выпустила Zulu, бесплатную сборку OpenJDK с открытым исходным кодом для Windows Server и Microsoft Azure Cloud. В более поздних выпусках была добавлена поддержка Mac OS X , нескольких версий Linux и Java Platform, Standard Edition версии 8. Zulu сертифицирован на совместимость с Java SE 8, 7 и 6 с использованием OpenJDK Community Technology Compatibility Kit . [26]
Amazon выпустили Amazon Corretto — бесплатный, многоплатформенный, готовый к производству дистрибутив Open Java Development Kit. Он выпущен под лицензией GPL v2 с исключением Classpath Exception . Доступны версии Java 8 и Java 11 с долгосрочной поддержкой. Впервые он был публично выпущен 31 января 2019 года. [27]
В 2017 году Eclipse Foundation выпустил AdoptOpenJDK, теперь именуемый Adoptium , главной целью которого является «продвижение и поддержка бесплатных и высококачественных сред выполнения с открытым исходным кодом и связанных с ними технологий для использования в экосистеме Java ».
Ноя 22 05:43:07 1995 [...] CompilerMain.C, Compiler. C, Compiler.h, lexer.l, parser.y: Первоначальная редакция
Фицсиммонс обновил исходные страницы заметок о выпуске Fedora 9, чтобы отразить, что Fedora 9 будет поставляться с OpenJDK 6 вместо реализации OpenJDK 7 в IcedTea. Fedora 9 (Sulphur) должна выйти в мае 2008 г.
резюме. JavaScript больше не обременен, но нам по-прежнему нужна поддержка liveconnect.