С развитием инструментов разработки 1С, в частности 1C:Enterprise Development Tools (EDT), вопрос выбора среды исполнения Java (JRE) и комплекта разработки (JDK) стал одним из самых обсуждаемых. Ситуация обострилась в апреле 2019 года, когда компания Oracle радикально изменила политику лицензирования своих дистрибутивов Java SE. В этой статье мы подробно разберем, как эти изменения влияют на разработчиков 1С, нужно ли платить за использование Java и какие бесплатные альтернативы существуют на сегодняшний день.
Разберем предысторию вопроса. До апреля 2019 года дистрибутивы Oracle Java SE были доступны по лицензии BCL (Binary Code License), которая позволяла использовать их бесплатно во многих сценариях, включая коммерческую разработку. Однако с 16 апреля 2019 года Oracle ввела новую лицензию — Oracle Technology Network (OTN) License Agreement for Oracle Java SE.
Проанализируем основные положения этой лицензии. Согласно новым условиям, бесплатное использование Java от Oracle разрешено только для:
Для любого коммерческого использования Java в "продуктивной" среде (на рабочих серверах, компьютерах бухгалтеров или разработчиков при выполнении оплачиваемых задач) теперь требуется покупка подписки. Рассмотрим, как это касается мира 1С. Поскольку 1C:EDT является инструментом для создания коммерческого ПО, использование стандартной Oracle 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.
Проанализируем ситуацию с мобильной разработкой. Для сборки мобильных приложений (Android) через 1С также требуется JDK. Долгое время стандартом считалась Java 8. Посмотрим на рекомендации по настройке:
Android SDK и инструментов сборки (Gradle) крайне рекомендуется использовать 64-битную версию JDK.JAVA_HOME.Важно отметить, что Google официально поддерживает OpenJDK в составе Android Studio, поэтому никаких юридических или технических препятствий для отказа от Oracle JDK в пользу бесплатных аналогов при создании мобильных приложений на 1С нет.
Рассмотрим, как ситуация изменилась в последние годы. В сентябре 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С:
PATH указывает на нужную папку bin, чтобы избежать конфликтов, если в системе осталось несколько версий Java.Таким образом, переход Oracle на платную модель лицензирования не стал катастрофой для сообщества 1С, а лишь стимулировал переход на более открытые и современные дистрибутивы OpenJDK, что в конечном итоге пошло на пользу стабильности инструментов разработки.