Нужно ли покупать лицензию Java от Oracle для работы с 1C:EDT?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

С развитием инструментов разработки 1С, в частности 1C:Enterprise Development Tools (EDT), вопрос выбора среды исполнения Java (JRE) и комплекта разработки (JDK) стал одним из самых обсуждаемых. Ситуация обострилась в апреле 2019 года, когда компания Oracle радикально изменила политику лицензирования своих дистрибутивов Java SE. В этой статье мы подробно разберем, как эти изменения влияют на разработчиков 1С, нужно ли платить за использование Java и какие бесплатные альтернативы существуют на сегодняшний день.

Изменения в лицензировании Oracle Java: что произошло?

Разберем предысторию вопроса. До апреля 2019 года дистрибутивы Oracle Java SE были доступны по лицензии BCL (Binary Code License), которая позволяла использовать их бесплатно во многих сценариях, включая коммерческую разработку. Однако с 16 апреля 2019 года Oracle ввела новую лицензию — Oracle Technology Network (OTN) License Agreement for Oracle Java SE.

Проанализируем основные положения этой лицензии. Согласно новым условиям, бесплатное использование Java от Oracle разрешено только для:

  1. Личного использования (в целях самообразования или развлечения).
  2. Разработки, тестирования, прототипирования и демонстрации приложений (но не для их эксплуатации в производственных целях).
  3. Использования с некоторыми другими продуктами Oracle.

Для любого коммерческого использования Java в "продуктивной" среде (на рабочих серверах, компьютерах бухгалтеров или разработчиков при выполнении оплачиваемых задач) теперь требуется покупка подписки. Рассмотрим, как это касается мира 1С. Поскольку 1C:EDT является инструментом для создания коммерческого ПО, использование стандартной Oracle JDK может быть расценено как нарушение лицензионного соглашения, если у вас нет соответствующей подписки.

Бесплатные альтернативы: OpenJDK и Liberica JDK

Выясним, есть ли выход из этой ситуации. На самом деле, "платность" Java — это миф, касающийся только конкретной сборки от Oracle. Сама технология Java развивается в рамках открытого проекта OpenJDK. Рассмотрим основные варианты, которые позволяют работать с 1C:EDT совершенно бесплатно и легально.

1. OpenJDK. Это базовый проект с открытым исходным кодом. Большинство коммерческих дистрибутивов (включая Oracle) базируются именно на нем. Основной нюанс OpenJDK заключается в том, что официальные сборки обновляются только в течение короткого периода времени. Для долгосрочной поддержки (LTS) лучше выбирать специализированные дистрибутивы.

2. Liberica JDK. Проанализируем этот продукт подробнее, так как именно его рекомендует фирма «1С». Это дистрибутив от компании BellSoft, основанный на OpenJDK. Его ключевые преимущества для российского разработчика:

3. Eclipse Temurin (ранее AdoptOpenJDK). Это дистрибутив, поддерживаемый сообществом и крупными вендорами (IBM, Red Hat, Microsoft). Он отличается высокой стабильностью и является стандартом де-факто в мире разработки на Java.

Технические нюансы совместимости версий

Рассмотрим техническую сторону вопроса. При установке 1C:EDT важно правильно подобрать версию JDK. Посмотрим на примеры проблем, с которыми сталкивались разработчики ранее.

В ранних версиях 1C:EDT (например, версия 1.11) существовало ограничение: среда не запускалась с JDK версии выше 10. Это было связано с тем, что начиная с Java 11, из стандартной поставки был удален модуль java.xml.bind (JAXB). Если вы попробуете запустить старую версию EDT на новой Java, вы получите ошибку инициализации.

Разберем, как эта проблема решается сейчас. В современных версиях 1C:EDT (начиная с 2022.x и новее) разработчики перешли на использование модульной архитектуры и актуальных платформ Eclipse. Теперь EDT корректно работает с Java 11 и даже Java 17. Более того, современные установщики 1C:EDT часто включают в себя встроенную среду исполнения (Embedded JRE). Это означает, что вам вообще не нужно устанавливать Java в систему — программа будет использовать свою "бортовую" версию, которая гарантированно совместима с кодом EDT.

Настройка Java для сборки мобильных приложений

Проанализируем ситуацию с мобильной разработкой. Для сборки мобильных приложений (Android) через 1С также требуется JDK. Долгое время стандартом считалась Java 8. Посмотрим на рекомендации по настройке:

  1. Для корректной работы Android SDK и инструментов сборки (Gradle) крайне рекомендуется использовать 64-битную версию JDK.
  2. Если вы используете Liberica JDK или OpenJDK (например, версию 11), убедитесь, что в системных переменных прописан путь к JAVA_HOME.
  3. В настройках 1C:EDT или конфигуратора 1С (при использовании сборщика мобильных приложений) необходимо явно указать путь к установленному дистрибутиву OpenJDK.

Важно отметить, что Google официально поддерживает OpenJDK в составе Android Studio, поэтому никаких юридических или технических препятствий для отказа от Oracle JDK в пользу бесплатных аналогов при создании мобильных приложений на 1С нет.

Актуальное состояние лицензирования (2021-2023 годы)

Рассмотрим, как ситуация изменилась в последние годы. В сентябре 2021 года компания Oracle представила лицензию NFTC (Oracle No-Fee Terms and Conditions) для Java 17. Она снова разрешила бесплатное использование Oracle JDK для коммерческих целей, но с серьезной оговоркой: это право сохраняется только для LTS-версий и только до тех пор, пока эта версия является актуальной (плюс один год после выхода следующей LTS).

Однако в 2023 году Oracle ввела новую модель подписки — Java SE Universal Subscription. Теперь стоимость подписки рассчитывается исходя из общего количества сотрудников компании (Employee Count), а не количества пользователей Java. Для крупных компаний это может означать огромные расходы, даже если Java использует всего один программист 1С.

Вывод очевиден: использование Oracle JDK в корпоративном секторе становится рискованным и экономически нецелесообразным.

Итоговые рекомендации

Подведем итог нашему анализу и сформулируем шаги для разработчика 1С:

  1. Не покупайте лицензию Oracle Java. Для работы с 1C:EDT это не требуется.
  2. Используйте Liberica JDK. Это наиболее безопасный и технически выверенный вариант для экосистемы 1С, особенно в России.
  3. Проверяйте версию EDT. Если вы используете актуальную версию 1C:EDT (2023.x), скорее всего, она уже содержит встроенную Java, и вам не нужно ничего настраивать дополнительно.
  4. Следите за переменными окружения. При использовании OpenJDK убедитесь, что переменная PATH указывает на нужную папку bin, чтобы избежать конфликтов, если в системе осталось несколько версий Java.

Таким образом, переход Oracle на платную модель лицензирования не стал катастрофой для сообщества 1С, а лишь стимулировал переход на более открытые и современные дистрибутивы OpenJDK, что в конечном итоге пошло на пользу стабильности инструментов разработки.

← На главную