Библиотека классов Java

редактировать

Библиотека классов Java (JCL ) представляет собой набор динамически загружаемые библиотеки, которые языки виртуальной машины Java (JVM) могут вызывать во время времени выполнения. Поскольку платформа Java не зависит от конкретной операционной системы, приложения не могут полагаться ни на одну из собственных библиотек платформы. Вместо этого платформа Java предоставляет исчерпывающий набор стандартных библиотек классов, содержащих функции, общие для современных операционных систем.

JCL служит трем целям в JVM:

  • Как и другие стандартные библиотеки кода, они предоставляют программисту хорошо известный набор полезных функций, таких как классы контейнера и обработка регулярных выражений.
  • Библиотека предоставляет абстрактный интерфейс для задач, которые обычно сильно зависят от оборудования и операционной системы, таких как доступ к сети и file access.
  • Некоторые базовые платформы могут не поддерживать все функции, ожидаемые приложением Java. В этих случаях реализация библиотеки может либо имитировать эти функции, либо предоставить согласованный способ проверки наличия определенной функции.

Содержание

  • 1 Реализация и конфигурация
  • 2 Соответствие
  • 3 Основные функции
  • 4 Лицензирование
    • 4.1 Предыдущие лицензии
    • 4.2 Выпуск с открытым исходным кодом
  • 5 Альтернативные реализации
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки

Реализация и конфигурация

Java Библиотека классов (JCL ) почти полностью написана на Java, за исключением частей, которым требуется прямой доступ к аппаратному обеспечению и операционной системе (например, для ввода / вывода или растровой графики ). Классы, которые предоставляют доступ к этим функциям, обычно используют оболочки Java Native Interface для доступа к операционной системе API-интерфейсы.

Практически весь JCL хранится в одном файле архива Java, который называется "rt.jar", который предоставляется с дистрибутивами JRE и JDK. Библиотека классов Java (rt.jar) расположена в пути к классам начальной загрузки по умолчанию и не обязательно должна появляться в classpath, объявленном для приложения. Среда выполнения использует загрузчик классов начальной загрузки для поиска JCL.

Система модулей Java (часть выпуска Java 9 ) сломала монолитный файл JAR "rt.jar" и разбила сам JCL на несколько модулей с указанными зависимости.

Соответствие

Любая реализация Java должна пройти тесты Java Technology Compatibility Kit на соответствие, включая тесты JCL.

Основные возможности

Доступ к функциям JCL осуществляется через классы, представленные в пакетах.

Лицензирование

Предыдущие лицензии

До выпуска OpenJDK JDK был основан на частной лицензии.

. Следуя их обещанию выпустить полностью собираемый JDK, основанный почти полностью на бесплатный и открытый исходный код в первой половине 2007 года, Sun выпустила полный исходный код библиотеки классов под GPL 8 мая 2007 года, за исключением некоторых ограниченных частей, которые были лицензированы Sun у третьих лиц, которые не хотели, чтобы их код выпускался под лицензией с открытым исходным кодом. Целью Sun было заменить части, которые остаются проприетарными и с закрытым исходным кодом, альтернативными реализациями и сделать библиотеку классов полностью бесплатной и с открытым исходным кодом.

До декабря 2010 года оставшаяся обремененная часть JDK была предоставлена ​​Sun, затем Oracle в виде двоичных плагинов, которые были необходимы для сборки JDK, но не были необходимы для запустить его. по состоянию на май 2007 г. единственной частью библиотеки классов, которая оставалась закрытой и закрытой (4% по состоянию на май 2007 г. для OpenJDK 7 и менее 1% по состоянию на май 2008 г. и OpenJDK 6), была:

  • 136>Реализация SNMP.

Начиная с первого выпуска в мае 2007 года, Sun при помощи сообщества выпустила как открытый исходный код или заменила его альтернативами с открытым исходным кодом почти весь обремененный код:

  • Все код звукового движка, включая программный синтезатор , стал открытым. Программный синтезатор с закрытым исходным кодом был заменен новым синтезатором, разработанным специально для OpenJDK под названием Gervill,
  • Все классы криптографии были выпущены как открытые,
  • Код который масштабирует и растеризует шрифты использует открытый исходный код FreeType
  • В собственном управлении цветом используется открытый исходный код LittleCMS. В JDK есть подключаемый слой, так что коммерческий выпуск Java может использовать оригинальную проприетарную систему управления цветом, а OpenJDK может использовать LittleCMS.
  • сглаживание графика код растеризатора использует средство визуализации Pisces с открытым исходным кодом, используемое в проекте phoneME.
  • Плагин JavaScript является открытым исходным кодом (движок JavaScript сам был с самого начала с открытым исходным кодом).

Выпуск с открытым исходным кодом

Начиная с декабря 2010 года, все так называемые двоичные плагины были заменены заменами с открытым исходным кодом, в результате чего весь JDK открыт.

Альтернативные реализации

GNU Classpath - другая основная библиотека классов бесплатного программного обеспечения для Java. В отличие от других реализаций, он реализует только библиотеку классов и используется многими бесплатными средами выполнения Java (например, Kaffe, SableVM, JamVM ).

Apache Harmony - еще одна библиотека классов бесплатного программного обеспечения. Его целью было реализовать другие части стека Java (Виртуальная машина, Компилятор и другие инструменты, необходимые для любой реализации Java ).

См. Также

  • значок Портал компьютерного программирования

Ссылки

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

Последняя правка сделана 2021-05-24 03:56:59
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте