Бесплатные реализации Java - это программные проекты, которые реализуют технологии Oracle Java и распространяются по лицензиям на бесплатное программное обеспечение , что делает их бесплатными . Sun выпустила большую часть своего исходного кода Java в качестве бесплатного программного обеспечения в мае 2007 года, так что теперь его можно считать практически бесплатной реализацией Java. [1] Реализации Java включают компиляторы, среды выполнения, библиотеки классов и т. Д. Сторонники бесплатного программного обеспечения и программного обеспечения с открытым исходным кодом называют бесплатное программное обеспечение виртуальных машин Java или программное обеспечение с открытым исходным кодом как бесплатные среды выполнения или бесплатные среды выполнения Java .
Некоторые сторонники этого движения предпочитают не использовать термин «Java», поскольку с ним связаны проблемы товарного знака . Следовательно, даже несмотря на то, что это «свободное движение Java», они избегают термина «бесплатные среды выполнения Java».
С середины 1990-х по 2006 год
Первым бесплатным проектом, предлагающим существенные части функциональности платформы Java, был, вероятно, guavac, реализация которого началась незадолго до ноября 1995 года. [2] [3]
С тех пор движение за свободное программное обеспечение разработало другие компиляторы Java, в первую очередь компилятор GNU для Java . Другие включают Eclipse Java Compiler (ECJ), который поддерживается Eclipse Foundation , и Jikes , который больше не поддерживается активно. Начиная с выпуска 4.3 GNU Compiler Collection , 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.
Объявление Sun за ноябрь 2006 г.
13 ноября 2006 года Sun выпустила свой компилятор javac под Стандартной общественной лицензией GNU . [5]
По состоянию на сентябрь 2007 года, помимо javac, Sun выпустила код HotSpot ( виртуальной машины ) и почти всю библиотеку классов Java в качестве бесплатного программного обеспечения.
Следуя своему обещанию выпустить полностью собираемый JDK, основанный почти полностью на бесплатном и открытом исходном коде в первой половине 2007 года, [6] Sun выпустила полный исходный код библиотеки Class под лицензией GPL 8 мая 2007 года, за исключением некоторых ограниченных части, которые были лицензированы Sun от третьих лиц, которые не хотели, чтобы их код был выпущен под лицензией свободного программного обеспечения. [7] Sun заявила, что стремится заменить части, которые остаются закрытыми и закрытыми, альтернативными реализациями и сделать библиотеку классов полностью бесплатной и с открытым исходным кодом. Поскольку в JDK есть ограниченный код , Sun будет продолжать использовать этот код в коммерческих выпусках до тех пор, пока он не будет заменен полностью функциональными бесплатными альтернативами с открытым исходным кодом.
После выпуска кода в мае 2007 г.
По состоянию на май 2008 г., единственная часть библиотеки классов, которая остается проприетарной (4% по состоянию на май 2007 г. для OpenJDK 7, [8] [9] и менее 1% по состоянию на май 2008 г. в OpenJDK 6 [10] [11]] ) - это реализация SNMP . [12]
С момента первого выпуска в мае 2007 года Sun Microsystems с помощью сообщества выпустила в виде бесплатного программного обеспечения (или заменила его альтернативами бесплатного программного обеспечения) почти весь обремененный код:
- Весь код звукового движка, включая программный синтезатор , выпущен с открытым исходным кодом. [12] [13] Программный синтезатор с закрытым исходным кодом был заменен новым синтезатором, разработанным специально для OpenJDK под названием Gervill , [14]
- Все классы криптографии, используемые в библиотеке классов, были выпущены как бесплатное программное обеспечение [15].
- FreeType заменил код, который масштабирует и растрирует шрифты . [16] [17] [18]
- LittleCMS заменила родную систему управления цветом . [17] В JDK есть подключаемый слой, так что коммерческая версия может использовать старую систему управления цветом, а OpenJDK может использовать LittleCMS.
- Модуль визуализации Pisces с открытым исходным кодом, используемый в проекте phoneME , заменил код растеризатора графики сглаживания сглаживания . [17] [19] [20] Этот код полностью функционален, но все еще требует улучшения производительности, [21]
- JavaScript плагин был открытым кодом ( двигатель JavaScript сам был открытым кодом с самого начала). [22]
Из-за этих ранее загруженных компонентов было невозможно собрать OpenJDK только с бесплатными программными компонентами. Чтобы иметь возможность сделать это до того, как вся библиотека классов станет бесплатной, и чтобы иметь возможность объединить OpenJDK в Fedora Core и другие бесплатные дистрибутивы Linux , Red Hat запустила проект под названием IcedTea . По сути, это гибрид OpenJDK / GNU Classpath, который можно использовать для начальной загрузки OpenJDK с использованием только бесплатного программного обеспечения. [23] [24]
По состоянию на март 2008 года дистрибутив Fedora 9 был выпущен с OpenJDK 6 вместо реализации IcedTea OpenJDK 7. [11] Некоторые из заявленных причин этого изменения:
- Sun заменила большинство обременений, для которых IcedTea предоставляла замену (менее 1% обремененного кода остается в библиотеке классов , и этот код не требуется для запуска OpenJDK).
- OpenJDK 6 был стабильной веткой, тогда как OpenJDK 7 был нестабильным, и ожидалось, что стабильный выпуск будет выпущен только в 2009 году.
- Sun лицензировала товарный знак OpenJDK для использования в Fedora. [ необходима цитата ]
В июне 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, Standard Edition версии 8. Zulu сертифицирован как совместимый с Java SE 8, 7 и 6 с использованием пакета совместимости технологий OpenJDK Community Technology Compatibility Kit . [26]
Amazon выпустила Amazon Corretto - бесплатный мультиплатформенный готовый к производству дистрибутив Open Java Development Kit. Он выпущен под GPL v2 с исключением пути к классам . Доступны версии Java 8 и Java 11 с долгосрочной поддержкой. Впервые он был публично выпущен 31 января 2019 года. [27]
Смотрите также
- Java (программная платформа)
- Javac
- HotSpot
- Гармония Апачей
- OpenJDK
- GNU Classpath , GCJ и GIJ
- Чай со льдом
- JamVM
- IKVM.NET
- Список виртуальных машин Java
- Сравнение виртуальных машин Java
Рекомендации
- ^ «OpenJDK и проект IcedTea» . www.redhat.com (на корейском языке) . Проверено 16 декабря 2019 .
- ^ «Анонс: guavac 0.2.5, бесплатный компилятор для языка Java» . 1996-09-07. Архивировано из оригинала на 2009-08-14 . Проверено 24 июня 2007 .
- ^ «Список изменений гуавака, показывающий, что первый релиз произошел в январе 1996 года» . Архивировано из оригинала на 2007-09-28 . Проверено 24 июня 2007 .
22 ноября, среда, 05:43:07 1995 [...] CompilerMain.C, Compiler. C, Compiler.h, lexer.l, parser.y: начальная версия
- ^ «Серия выпусков GCC 4.3 - Изменения, новые функции и исправления» . Проверено 8 октября 2007 .
- ^ Sun выбирает лицензию GPL для кода Java
- ^ OpenJDK FAQ архивация 2 апреля 2007, в Wayback Machine
- ^ "Open JDK уже здесь!" . Sun Microsystems. 2007-05-08 . Проверено 9 мая 2007 .
- ^ Херрон, Дэвид (2007-10-04). «Планы на OpenJDK» . Архивировано из оригинала на 2007-10-11 . Проверено 9 октября 2007 .
- ^ Фитцсиммонс, Томас (18 мая 2007 г.). «Планы на OpenJDK» . Проверено 22 мая 2007 .
- ^ Ангел, Лилиан (13 марта 2008 г.). «OpenJDK для замены IcedTea в Fedora 9» . Архивировано из оригинала на 2008-04-18 . Проверено 5 апреля 2008 .
- ^ а б Уэйд, Карстен (13 марта 2008 г.). "OpenJDK в Fedora 9!" . redhatmagazine.com. Архивировано из оригинала на 2008-04-21 . Проверено 5 апреля 2008 .
Томас Фитцсиммонс обновил исходные страницы примечаний к выпуску Fedora 9, чтобы отразить, что Fedora 9 будет поставляться с OpenJDK 6 вместо реализации IcedTea OpenJDK 7. Fedora 9 (Sulphur) должна быть выпущена в мае 2008 года.
- ^ а б "Исходный код OpenJDK 6 b10 размещен" . 2008-05-30 . Проверено 1 июня 2008 .
- ^ страница проекта аудио-движка
- ^ «Джервилл - Программный синтезатор» . Архивировано из оригинала на 2011-10-04 . Проверено 1 июня 2008 .
- ^ «Крипто было добавлено в OpenJDK» . 2007-09-27 . Проверено 7 октября 2007 .
- ^ страница проекта font-scaler
- ^ a b c Страница проекта Java2D
- ^ "Растеризатор шрифтов Freetype" . 2007-08-07 . Проверено 24 ноября 2007 .
- ^ phoneme.dev.java.net/ Архивировано 10 июня 2007 г. на Wayback Machine
- ^ Страница проекта графического растеризатора
- ^ Грэм, Джим (2007-10-03). «Растеризатор с открытым исходным кодом» . Sun Microsystems . Проверено 9 мая 2007 .
- ^ «Javascript перегружен, и нет поддержки плагинов javascript» . IcedTea . 2008-03-11 . Проверено 1 июня 2008 .
Изменяющееся резюме. JavaScript больше не перегружен, но нам все еще нужна поддержка liveconnect.
- ^ Эндрю, Хейли (2007-06-07). «Репозиторий экспериментальных сборок на icedtea.classpath.org» . Архивировано из оригинала на 2008-02-11 . Проверено 9 июня 2007 .
- ^ Вилаард, Марк (07.06.2007). «Репозиторий экспериментальных сборок на icedtea.classpath.org» . Проверено 9 июня 2007 .
- ^ Шарплз, Рич (19.06.2008). «Java, наконец, свободна и открыта» . Архивировано из оригинала на 2008-06-20.
- ^ http://www.azulsystems.com/products/zulu
- ^ Арун Гупта (31 января 2019 г.). «Amazon Corretto 8 теперь общедоступен» . Amazon Web Services . Проверено 25 июля 2019 .
Внешние ссылки
- Свободный, но скованный - ловушка Java
- Избегая ловушки Java: практическая дорожная карта к альтернативам свободного программного обеспечения и открытого исходного кода
- Гибриды сочетают в себе путь к классам GNU и OpenJDK
- Часовое видео 2007 года о семинаре с разработчиками Sun, GGJ и GNU Classpath
- Проблемы с товарным знаком Java