stringtranslate.com

Путь к классам GNU

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 с исключением привязки . Это лицензия свободного программного обеспечения . Весь код формально принадлежит Free Software Foundation , [ нужна ссылка ] и этот владелец связан своими собственными договорными обязательствами перед разработчиками. [ нужны разъяснения ]

Использование

GNU Classpath используется многими бесплатными средами выполнения Java (такими как Kaffe , SableVM , JamVM , Jikes RVM и VMKit), поскольку каждая полнофункциональная виртуальная машина Java должна предоставлять реализацию стандартных библиотек классов.

Некоторые другие варианты использования включают в себя:

История

Разработка 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 также поддерживает компиляцию и запуск нового компилятора javac с открытым исходным кодом под лицензией GPL с использованием GNU Classpath, а также позволяет компилировать библиотеку классов, инструменты и примеры GNU Classpath с самим javac .

Классы из домена omg.org

Sun и GNU Corba взаимодействуют в двухклиентской игре [a]

GNU Classpath не принимает код, имеющий несвободную лицензию или автоматически сгенерированный из кода с несвободной лицензией. Стандартный API Java содержит многочисленные классы из домена omg.org, которые обычно генерируются из файлов IDL , выпущенных Object Management Group . Лицензия «использовать, но не изменять» этих файлов считается несвободной. По этой причине упомянутые классы в проекте GNU Classpath были написаны с нуля, используя только официальные печатные спецификации OMG. Следовательно, эта часть GNU Classpath так же бесплатна, как и любой другой код в проекте.

Смотрите также

Примечания

  1. ^ Fosdem 2006 включал эту и другие демонстрации обмена данными между реализациями CORBA от Sun и Classpath. [8] Исходный код доступен [9] в репозитории Classpath.

Рекомендации

  1. ^ Хьюз, Эндрю Джон (16 марта 2012 г.). «Выпущена версия GNU Classpath 0.99!» ( Журнал Всемирной паутины ). Фьюзейство. Архивировано из оригинала 14 декабря 2012 г. Проверено 20 марта 2012 г.
  2. ^ Средство просмотра апплетов GCJ, Koders, архивировано из оригинала 18 сентября 2009 г. , получено 14 сентября 2009 г..
  3. ^ «Юпитер», ЭЭКГ, Университет Торонто.
  4. ^ «Охват библиотеки путей классов GNU против OpenJDK6», J API, Fuseyism, заархивировано из оригинала 06 сентября 2015 г. , получено 31 мая 2012 г..
  5. ^ «Охват библиотеки путей классов GNU против OpenJDK7», J API, Fuseyism, заархивировано из оригинала 04 марта 2016 г. , получено 31 мая 2012 г..
  6. ^ «Выпущен GNU Classpath «95% и продолжает расти» 0.19», Проект GNU (объявление), Программное обеспечение, Фонд свободного программного обеспечения, 02 ноября 2005 г. , получено 31 мая 2011 г..
  7. ^ «Выпуск GNU Classpath 0.98 «Лучше поздно, чем никогда», Проект GNU (объявление), Программное обеспечение, Фонд свободного программного обеспечения, 5 февраля 2009 г..
  8. ^ Fosdem (архив конференции), Classpath, 2006 г..
  9. ^ «Путь к классам», Проект GNU is Not Unix (исходный код) (пример), Фонд свободного программного обеспечения.

Внешние ссылки