Путь к классам GNU
Эта статья нуждается в дополнительных цитатах для проверки . ( июль 2023 г. ) |
![]() | |
Скриншот | |
Разработчик(и) | Проект GNU (формально принадлежит FSF ) |
---|---|
Финальный выпуск | 0.99 [1] / 16 марта 2012 г |
Репозиторий | |
Написано в | Си и Ява |
Операционная система | Кросс-платформенный |
Тип | Библиотека |
Лицензия | Исключение привязки GPL |
Веб-сайт | www |
GNU Classpath — это бесплатная программная реализация стандартной библиотеки классов языка программирования Java . большинство классов из J2SE Реализовано 1.4 и 5.0. Таким образом, Classpath можно использовать для запуска приложений на основе Java . GNU Classpath является частью проекта GNU . Первоначально он разрабатывался параллельно с libgcj из-за несовместимости лицензий, но позже эти два проекта объединились.
высокоприоритетным проектом GNU Classpath был признан Фондом свободного программного обеспечения . Когда проект Classpath стартовал, лицензия на официальную реализацию Java от Sun Microsystems не позволяла распространять какие-либо изменения. С момента создания проекта Classpath OpenJDK был выпущен под лицензией GPL и теперь служит официальной эталонной реализацией для платформы Java .
Лицензия
[ редактировать ]GNU Classpath лицензируется на условиях GNU General Public License с исключением привязки . Это лицензия свободного программного обеспечения . Весь код формально принадлежит Фонду свободного программного обеспечения . [ нужна ссылка ] и этот владелец связан своими договорными обязательствами перед разработчиками. [ нужны разъяснения ]
Использование
[ редактировать ]GNU Classpath используется многими бесплатными средами выполнения Java (такими как Kaffe , SableVM , JamVM , Jikes RVM и VMKit), поскольку каждая полнофункциональная виртуальная машина Java должна обеспечивать реализацию стандартных библиотек классов.
Некоторые другие варианты использования включают в себя:
- Компилятор GNU для Java , способный компилировать код Java в собственные автономные исполняемые файлы.
- GCJAppletViewer [2] для запуска Java-апплетов из командной строки, если они не поддерживаются используемым браузером.
- IKVM.NET , который интегрирует Java с .NET Framework.
- JNode — операционная система для запуска Java-приложений. Эта система написана только на Java и ассемблере.
- Специализированные виртуальные машины, такие как Jaos для интеграции с языком программирования Oberon и JamaicaVM для встраиваемых систем с гарантиями реального времени.
- Виртуальные машины для распределенных вычислений с кластерами, имеющие до 128 процессоров на Myrinet . [3]
- Проект IcedTea использовал GNU Classpath в качестве замены проприетарных элементов OpenJDK до их замены в исходной версии.
История
[ редактировать ]Разработка GNU Classpath началась в 1998 году пятью разработчиками. [ нужна ссылка ] За свою историю он несколько раз объединялся с другими проектами, преследующими схожие цели ( Kaffe , libgcj). Раньше GNU Classpath предоставлял собственную виртуальную машину (Japhar). Поскольку Classpath становился базовой библиотекой, используемой многими различными проектами, этой виртуальной машине уделялось все меньше и меньше внимания, и теперь она больше не поддерживается. [ нужна ссылка ]
После реализации большей части официального API Java 1.4 работа в проекте стала больше ориентированной на ошибки, а не на покрытие API. 24 октября 2006 г. была зафиксирована реализация последнего отсутствующего класса 1.4 — HTMLWriter . Скорость разработки (рассчитываемая математически как среднее количество новых строк кода в день) достигла самого высокого уровня в 2006 году. [ нужна ссылка ]
Название GNU Classpath было первоначально предложено Брэдли М. Куном одному из первых разработчиков Полу Фишеру. существовала В то время в сообществе разработчиков свободных реализаций Java большая обеспокоенность по поводу соблюдения прав товарного знака Sun на Java в отношении свободных реализаций. Кун предложил имя $CLASSPATH — переменную среды , используемую большинством систем Java для указания места расположения библиотек Java на компьютере. Поскольку $CLASSPATH часто расширяется до имени пути , включающего слово java (например, /usr/lib/java
), это был способ вспомнить имя Java, не произнося его. Фишеру и другим разработчикам не понравилось неприглядное использование $ и заглавных букв, и они остановились на Classpath .
Команда разработчиков
[ редактировать ]Сопровождающий заботится о юридической стороне проекта, готовит регулярные релизы проекта и осуществляет контроль качества. Сопровождающий также предоставляет права доступа к CVS . [ нужна ссылка ]
GNU Classpath не имеет формальной иерархии. Работу выполняют наиболее технически способные, жесткого разделения труда тоже нет. Все изменения кода сначала публикуются в списке обсуждения в виде патчей, где при необходимости им можно противостоять. Обычно проект получает от пяти до восьми обновлений в день.
библиотеки GNU Classpath Прогресс покрытия кода можно отслеживать с помощью OpenJDK6. [4] и OpenJDK7. [5]
Интеграция виртуальных машин
[ редактировать ]GNU Classpath содержит классы из официального пространства имен Java API. Там, где вызовы машинного кода необходимы или крайне желательны, это делается из небольшого количества классов «VM». Имя такого класса VM совпадает с именем класса, требующего нативных методов, плюс дополнительный префикс VM : VMObject, VMString и так далее. Классы виртуальной машины, хранящиеся отдельно от остального кода, являются частными и окончательными для пакета . Методы этих классов содержат ключевое слово Native , указывающее на необходимость поддержки встроенной библиотеки. Такие библиотеки предоставляются авторами виртуальной машины Java, поэтому GNU Classpath можно подключить практически к любой виртуальной машине Java, если исходные коды такой виртуальной машины доступны и могут быть изменены.
Поддержка новых языковых функций Java 1.5.
[ редактировать ]До версии 0.95 каждый выпуск GNU Classpath состоял из двух отдельных архивов выпуска; одна представляла состояние основной ветки разработки , а другая содержала содержимое более экспериментальной ветки, поддерживая такие дополнения, как обобщения, перечисления и аннотации, присутствующие в Java 1.5. [6]
Начиная с версии 0.95, [7] Дополнения Java 1.5, такие как дженерики, полностью интегрированы в основную ветку. Ветку можно создать с помощью компилятора Eclipse , ecj, для компиляции исходного кода Java 1.5 в байт-код. В случае GCJ для выполнения этого начального этапа используется ecj, а затем преобразуется байт-код в машинный код. Начиная с версии 0.95, GNU Classpath также поддерживает компиляцию и запуск нового под лицензией GPL с открытым исходным кодом javac компилятора с использованием GNU Classpath, а также позволяет компилировать библиотеку классов, инструменты и примеры GNU Classpath с самим javac .
Классы из домена omg.org
[ редактировать ]
GNU Classpath не принимает код, имеющий несвободную лицензию или автоматически сгенерированный из кода с несвободной лицензией. Стандартный API Java содержит многочисленные классы из домена omg.org, которые обычно генерируются из файлов IDL , выпущенных Object Management Group . Лицензия «использовать, но не изменять» этих файлов считается несвободной. По этой причине упомянутые классы в проекте GNU Classpath были написаны с нуля, используя только официальные печатные спецификации OMG. Следовательно, эта часть GNU Classpath так же свободна, как и любой другой код в проекте.
См. также
[ редактировать ]- Апач Гармония
- Компилятор GNU для Java
- IKVM.NET
- ДжемВМ
- ЯмайкаVM
- В эпизоде
- ДжикесРВМ
- Кофе
- ХолодныйЧай
- Бесплатные реализации Java
- Библиотека классов Java
Примечания
[ редактировать ]Ссылки
[ редактировать ]- ^ Хьюз, Эндрю Джон (16 марта 2012 г.). «Выпущена версия GNU Classpath 0.99!» ( Журнал Всемирной паутины ). Фьюзейство. Архивировано из оригинала 14 декабря 2012 г. Проверено 20 марта 2012 г.
- ^ Средство просмотра апплетов GCJ , Koders, заархивировано из оригинала 18 сентября 2009 г. , получено 14 сентября 2009 г.
- ^ «Юпитер», ЭЭКГ , Университет Торонто .
- ^ «Охват библиотеки путей классов GNU против OpenJDK6», J API , Fuseyism, заархивировано из оригинала 06 сентября 2015 г. , получено 31 мая 2012 г.
- ^ «Охват библиотеки путей классов GNU против OpenJDK7», J API , Fuseyism, заархивировано из оригинала 4 марта 2016 г. , получено 31 мая 2012 г.
- ^ «Выпущен GNU Classpath «95% и больше» 0.19», Проект GNU (объявление), Программное обеспечение, Фонд свободного программного обеспечения, 02 ноября 2005 г. , получено 31 мая 2011 г.
- ^ «Выпуск GNU Classpath 0.98 «Лучше поздно, чем никогда», Проект GNU (объявление), Программное обеспечение, Фонд свободного программного обеспечения, 05 февраля 2009 г.
- ^ Фосдем (архив конференции), Classpath, 2006 .
- ^ «Путь к классам», Проект GNU is Not Unix (исходный код) (пример), Фонд свободного программного обеспечения .
Внешние ссылки
[ редактировать ]- Официальный сайт
- «Автоматически создаваемая документация, включая исходный код», Classpath .
- «Builder», Classpath : тестовые прогоны и тесты двоичной совместимости.
- Разработчик GNU Classpath (май 2006 г.), «Состояние совместной работы над бесплатными Java-проектами» , еженедельные новости GNU/Linux (статья) .
- «Permeable Development», SMI ( журнал World Wide Web ), CH : ETHZ, 25 января 2006 г., заархивировано из оригинала 20 июля 2006 г.