Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

GNU Classpath - это бесплатная программная реализация стандартной библиотеки классов для языка программирования Java . Реализовано большинство классов из J2SE 1.4 и 5.0. Таким образом, путь к классам можно использовать для запуска приложений на основе 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 Compiler для Java , который способен компиляции кода Java в нативных автономных исполняемых файлов.
  • GCJAppletViewer [4] для запуска апплетов Java из командной строки, если они не поддерживаются используемым браузером.
  • IKVM.NET , интегрирующий Java с .NET Framework
  • JNode, операционная система для запуска приложений Java. Эта система написана только на Java и ассемблере.
  • Специализированные виртуальные машины, такие как Jaos для интеграции с языком программирования Oberon и JamaicaVM для встроенных систем с гарантиями реального времени.
  • Виртуальные машины для распределенных вычислений с кластерами, имеющие до 128 процессоров в Myrinet . [5]
  • Проект 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 было первоначально предложено Брэдли М. Куном одному из первых разработчиков Полу Фишеру. В то время в сообществе разработчиков Free Java существовало серьезное беспокойство по поводу применения торговой марки Sun на Java в отношении бесплатных реализаций. Кун предложил имя $ CLASSPATH , которое является переменной среды, используемой большинством систем Java, чтобы указать, где находятся библиотеки Java на компьютере. Поскольку $ CLASSPATH часто расширяется до имени пути , содержащего слово java (например, /usr/lib/java), это был способ вызвать имя Javaна самом деле не говоря об этом. Фишеру и другим разработчикам не понравилось неприглядное использование символа $ и всех заглавных букв, и они остановились на Classpath .

Команда разработчиков [ править ]

Сопровождающий заботится о юридической стороне проекта, готовит регулярные релизы проекта и осуществляет некоторый контроль качества. Сопровождающий также предоставляет разрешения на доступ к CVS . [ необходима цитата ]

GNU Classpath не имеет формальной иерархии. Работу выполняют самые технически подготовленные, и нет четкого разделения труда. Все изменения кода сначала публикуются в списке обсуждения как исправления, где они могут быть отменены при необходимости. Обычно проект получает от пяти до восьми исправлений в день.

Прогресс покрытия кода библиотеки GNU Classpath можно отслеживать с помощью OpenJDK6 [6] и OpenJDK7. [7]

Интеграция виртуальной машины [ править ]

GNU Classpath содержит классы из официального пространства имен Java API. Там, где вызовы машинного кода необходимы или очень желательны, это делается из небольшого числа классов «VM». Имя такого класса виртуальной машины совпадает с именем класса, которому требуются собственные методы, плюс дополнительный префикс виртуальной машины : VMObject, VMString и т. Д. Классы виртуальных машин, хранящиеся отдельно от остального кода, являются закрытыми и окончательными для пакетов . Методы этих классов содержат ключевое слово native , указывающее на необходимость поддержки родной библиотеки. Такие библиотеки предоставляются авторами виртуальной машины Java, поэтому GNU Classpath может быть подключен практически к любой виртуальной машине Java, если источники такой виртуальной машины доступны и могут быть изменены.

Поддержка новых языковых функций в Java 1.5 [ править ]

До версии 0.95 каждый выпуск GNU Classpath состоял из двух отдельных архивов выпуска; один представлял состояние основной ветки разработки, а другой содержал содержимое более экспериментальной ветви, поддерживая дополнения, такие как обобщения, перечисления и аннотации, присутствующие в Java 1.5. [8]

Начиная с версии 0.95, [9] дополнения Java 1.5, такие как дженерики, были полностью интегрированы в основную ветку. Ветвь может быть создана с помощью компилятора Eclipse , ecj, для компиляции исходного кода Java 1.5 в байт-код. В случае GCJ он использует ecj для выполнения этого начального этапа, а затем преобразует байт-код в собственный код. Начиная с версии 0.95, GNU Classpath также поддерживает компиляцию и запуск недавно выпущенного GPL компилятора javac с открытым исходным кодом с использованием GNU Classpath, а также позволяет компилировать библиотеку классов GNU Classpath, инструменты и примеры с помощью самого javac .

Классы из домена omg.org [ править ]

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

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

См. Также [ править ]

  • Гармония Апачей
  • Компилятор GNU для Java
  • IKVM.NET
  • JamVM
  • ЯмайкаVM
  • Jaos
  • JikesRVM
  • Каффе
  • Чай со льдом
  • Бесплатные реализации Java
  • Библиотека классов Java

Заметки [ править ]

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

Ссылки [ править ]

  1. ^ Хьюз, Эндрю Джон (2012-03-16). "GNU Classpath 0.99 выпущен!" ( Журнал World Wide Web ). Фузейизм. Архивировано из оригинала на 2012-12-14 . Проверено 20 марта 2012 .
  2. ^ http://git.savannah.gnu.org/cgit/classpath.git/log/
  3. ^ http://tromey.com/blog/?p=911
  4. ^ GCJ апплет зритель , Koders, архивируются с оригинала на 2009-09-18 , извлекаться 2009-09-14.
  5. ^ "Юпитер", EECG , U Торонто.
  6. ^ "Охват библиотеки пути к классам GNU против OpenJDK6", J API , Fuseyism.
  7. ^ «Охват библиотеки пути к классам GNU против OpenJDK7», J API , Fuseyism.
  8. ^ "GNU Classpath" 95% и считая "0.19 выпущено", Проект GNU (объявление), Программное обеспечение, Фонд свободного программного обеспечения, 2005-11-02 , получено 31 мая 2011 г..
  9. ^ «Выпуск GNU Classpath 0.98« Лучше поздно, чем никогда », Проект GNU (объявление), Программное обеспечение, Фонд свободного программного обеспечения, 2009-02-05.
  10. ^ Fosdem (архив конференции), Classpath, 2006.
  11. ^ " Путь к классам", GNU не является проектом Unix (исходный код) (пример), Фонд свободного программного обеспечения .

Внешние ссылки [ править ]

  • Официальный сайт
  • «Автоматически созданная документация, включая исходный код», Classpath.
  • «Строитель», Путь к классам: тестовые прогоны и тесты двоичной совместимости
  • Разработчик GNU Classpath (май 2006 г.), «Состояние сотрудничества с бесплатными Java-проектами» , еженедельные новости GNU / Linux (статья).
  • "Permeable Development", СМИ ( журнал World Wide Web ), CH : ETHZ, 25 января 2006 г., архивировано с оригинала 20 июля 2006 г..