Библиотека классов Java - Википедия - Java Class Library

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

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

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

Реализация и настройка

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

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

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

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

Любая реализация Java должна проходить Java Комплект совместимости технологий тесты на соответствие, в том числе тесты JCL.

Основные особенности

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

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

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

Перед выпуском OpenJDK JDK был основан на проприетарная лицензия.

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

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

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

  • Весь код звукового движка, включая программный синтезатор, стал открытым исходным кодом.[10][11] Программный синтезатор с закрытым исходным кодом был заменен новым синтезатором, разработанным специально для OpenJDK под названием Gervill,[12]
  • Все криптография классы были выпущены как open-source,[13]
  • Код, который масштабируется и растеризует шрифты использует открытый исходный код FreeType[14][15][16]
  • Родной Управление цветом использует открытый исходный код LittleCMS.[15] В JDK есть подключаемый уровень, так что коммерческий выпуск Java может использовать оригинальную проприетарную систему управления цветом, а OpenJDK может использовать LittleCMS.
  • В сглаживание графика растеризатор код использует рендерер Pisces с открытым исходным кодом, используемый в phoneME проект.[15][17][18]
  • В JavaScript плагин с открытым исходным кодом ( Движок JavaScript сам был с открытым исходным кодом с самого начала).[19]

Релиз с открытым исходным кодом

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

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

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

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

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

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

  1. ^ «Как находятся классы». Корпорация Oracle. Получено 2015-12-05.
  2. ^ "Резюме модуля JDK". Корпорация Oracle. 2015-10-23. Получено 2015-11-29.
  3. ^ [1]
  4. ^ Рич Грин (2007-05-08). "Open JDK уже здесь!". Sun Microsystems. Получено 2011-11-25.
  5. ^ "Двоичные плагины OpenJDK". Sun Microsystems. 2007-05-08. Архивировано из оригинал на 2012-08-26. Получено 2011-11-25.
  6. ^ Фитцсиммонс, Томас (18 мая 2007 г.). «Планы на OpenJDK». Получено 2007-05-22.
  7. ^ Ангел, Лилиан (13 марта 2008 г.). «OpenJDK для замены IcedTea в Fedora 9». Архивировано из оригинал на 2012-12-10. Получено 2008-04-05.
  8. ^ Уэйд, Карстен (13 марта 2008 г.). "OpenJDK в Fedora 9!". redhatmagazine.com. Архивировано из оригинал на 2008-04-21. Получено 2008-04-05. Томас Фитцсиммонс обновил исходные страницы примечаний к выпуску Fedora 9, чтобы отразить, что Fedora 9 будет поставляться с OpenJDK 6 вместо реализации IcedTea OpenJDK 7. Fedora 9 (Sulphur) должна быть выпущена в мае 2008 года.
  9. ^ Херрон, Дэвид (2007-10-04). «Планы на OpenJDK». Архивировано из оригинал на 2007-10-11. Получено 2007-10-09.
  10. ^ а б c "Исходный код OpenJDK 6 b10 опубликован". 2008-05-30. Получено 2008-06-01.
  11. ^ страница проекта аудио-движка
  12. ^ «Джервилл - Программный синтезатор». Архивировано из оригинал на 2011-10-04. Получено 2008-06-01.
  13. ^ «Крипто было добавлено в OpenJDK». 2007-09-27. Получено 2007-10-07.
  14. ^ страница проекта font-scaler
  15. ^ а б c Страница проекта Java2D
  16. ^ "Растеризатор шрифтов Freetype". 2007-08-07. Получено 2007-11-24.
  17. ^ phoneme.dev.java.net/ В архиве 2007-06-10 на Wayback Machine
  18. ^ страница проекта графического растеризатора
  19. ^ «Javascript перегружен, и плагин javascript не поддерживает». Чай со льдом. 2008-03-11. Получено 2008-06-01. Изменение резюме. JavaScript больше не перегружен, но нам все еще нужна поддержка liveconnect.
  20. ^ Келли О'Хэйр (декабрь 2010 г.). "Логика двоичных плагинов OpenJDK7 и OpenJDK6 удалена". Корпорация Oracle. Получено 2011-11-25.

внешняя ссылка