Java Community Process (JCP) — сформированный в 1998 году формальный процесс, который позволяет заинтересованным лицам участвовать в формировании будущих версий спецификаций платформ языка Java.
Основа JCP — так называемые JSR (Java Specification Request/Запрос на Спецификацию Java), формальные документы, описывающие спецификации и технологии, которые предлагается добавить к Java платформе.
Разработка JSR включает следующие шаги:
- Предложение (Initiation). Спецификация предлагается членами сообщества, и, путём голосования, принимается Исполнительным Комитетом (JCP Executive Committee). В это время JSR, присваивается номер.
- Черновик для сообщества (Community Draft). После принятия JSR, формируется экспертная группа, которая разрабатывает первый черновик спецификации. Этот черновик выносится на рассмотрение Исполнительного Комитета и членов сообщества. По итогам обсуждения выносится решение о том, переходить к следующей стадии, или необходим новый доработанный Community Draft.
- Открытый черновик (Public Draft). Черновик, дошедший до этой стадии, выкладывается в свободный доступ, и любой человек, имеющий доступ к сети Интернет, может рассмотреть его и высказать своё мнение. Экспертная группа использует эти отзывы для дальнейшего совершенствования спецификации. После этого доработанная спецификация выносится на голосование Исполнительного Комитета для окончательного утверждения. К этому времени становятся доступными Эталонная реализация (reference implementation) и набор автоматических тестов Technology Compatibility Kit (TCK).
- Поддержка (Maintenance). Окончательная версия спецификации, эталонной реализации и TCK, обновляется по мере поступления запросов на доработку, уточнение и расширение. Некоторые запросы могут потребовать пересмотра спецификации экспертной группой и выпуска новой версии, или даже формирования нового JSR.
В соответствии с основными целевыми направлениями, существуют два Исполнительных комитета:
- ME — комитет по платформам с ограниченными возможностями (прежде всего мобильных). Основная платформа — J2ME. По состоянию на июнь 2008 года, в ведении этого комитета находится 79 JSR’ов.
- SE/EE — занимается платформами для настольных компьютеров (Java Platform, Standard Edition) и для серверов (Java Platform, Enterprise Edition). Под действие этого комитета попадает 223 JSR’а (на июнь 2008).