Skip to content

Сборка под Java 21 не даёт использовать utils в плагинах 1C:EDT (Java 17) #85

Description

@Jimmo910

Контекст: продолжение 1c-syntax/utils#81 и нашего issue #8. Спасибо за 0.10.1 — зависимости и таймауты теперь ровно те, что нужны, и мы начали переход на ваш загрузчик. Упёрлись в версию байткода.

Что обнаружили. Все классы в utils-0.10.1.jar скомпилированы с major version 65 (Java 21) — проверяли по байтам class-файлов. В build.gradle.kts (v0.10.1) стоит:

sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21

Почему это блокирует экосистему 1C:EDT. EDT сейчас запускается на Java 171cedt.ini версии 2026.1 — -Dosgi.requiredJavaVersion=17), а плагины к ней — OSGi-бандлы с Bundle-RequiredExecutionEnvironment: JavaSE-17. При попытке загрузить классы v65 на такой JVM получаем UnsupportedClassVersionError — это не лечится ни упаковкой, ни настройками OSGi.

Просьба. Собирать utils (хотя бы модуль/пакет загрузчика) под Java 17release/targetCompatibility = 17, либо multi-release jar, либо отдельный артефакт с классификатором. По нашему просмотру исходников downloader Java-21-специфичных конструкций не видно: используются var, pattern matching для instanceof, switch-выражения, record, Stream.toList() — всё это доступно уже в Java 16–17. Но вам, конечно, виднее, нет ли чего-то такого в остальных модулях.

Контекст по срокам. По имеющимся у нас сведениям, EDT в обозримой перспективе перейдёт на более новую Java, так что проблема со временем уйдёт сама. Но переходный период у пользователей длинный: те, кто останется на текущих версиях EDT (Java 17), не смогут пользоваться плагинами, которые тянут utils. Поэтому поддержка 17 была бы очень кстати ещё какое-то время.

Если понижение таргета по каким-то причинам нежелательно — скажите, мы просто подождём перехода EDT на новую Java и вернёмся к переходу тогда.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions