Платформы, обновленные до Сизифа: • p11-education-11.0-x86-64-xfce/edu • p11-workstation-11.0-x86-64 • p11-server-11.0-x86-64-office • p11-kworkstation-11.0-x86-64 Версия пакета: zabbix-java-gateway 7.0.2-alt2 Шаги воспроизведения: 1) Установить пакеты # apt-get install java-17-openjdk-headless java-17-openjdk zabbix-java-gateway 2) Убедиться, что в системе отсутствуют другие версии java 3) Запустить сервис # systemctl start zabbix_java_gateway.service && sleep 5; systemctl status zabbix_java_gateway.service Ожидаемый результат: Сервис стартует корректно. Фактический результат: Сервис не запускается. В логах видим сообщение: java.lang.UnsupportedClassVersionError: com/zabbix/gateway/JavaGateway has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 61.0 Одинаковый результат при использовании как java-17-openjdk-17.0.11.0.9-alt1, так и более новой версии java-17-openjdk-17.0.12.0.7-alt1 . Сервис запускается без ошибок ,если использовать java-21-openjdk-21.0.3.0.9-alt1 Возможно ли добавить поддержку java-17-openjdk для текущей версии zabbix-java-gateway ?
zabbix-1:7.0.3-alt2 -> sisyphus: Mon Sep 02 2024 Alexei Takaseev <taf@altlinux> 1:7.0.3-alt2 - Fix start java-gateway (ALT#51339)
Переоткрываю ошибку, поскольку: Прошу собрать zabbix-java-gateway с поддержкой java-11-openjdk Версии пакетов: zabbix-java-gateway-6.0.36-alt0.p10.1 java-11-openjdk-11.0.24.0.8-alt0.p10.1 Следующие стенды, обновленные до p10: kworkstation-10.4-x86-64 workstation-10.2-x86-64 education-10.4-x86-64 education-10.4-x86-64-kde server-10.2-x86-64 Шаги воспроизведения: 1. Установить пакеты # apt-get install java-11-openjdk-headless java-11-openjdk zabbix-java-gateway -y 2. Убедиться, что в системе отсутствуют другие версии java 3. Запустить сервис # systemctl start zabbix_java_gateway.service && sleep 5; systemctl status zabbix_java_gateway.service Ожидаемый результат: Сервис стартует корректно Реальный результат: java.lang.UnsupportedClassVersionError: com/zabbix/gateway/JavaGateway has been compiled by a more recent version of the Java Runtime (class file version 61.0),this version of the Java Runtime only recognizes class file versions up to 55.0 В p10 zabbix-java-gateway зависит от java-11-openjdk: # apt-cache whatdepends java-11-openjdk | grep zabbix zabbix-java-gateway-1:6.0.36-alt0.p10.1:p10+362925.100.1.1@1732025426
zabbix-1:7.0.6-alt0.p10.1 -> p10: Wed Dec 11 2024 Alexei Takaseev <taf@altlinux> 1:7.0.6-alt0.p10.1 - Backport to P10 - Delete php7 support - minimal support php8.0 - Add nginx frontend - Use OpenJDK 11 (ALT#51339)
Версия пакета: zabbix-java-gateway-7.0.16-alt1 Запускается только с java-21-openjdk. Иначе, в логах для java-1.8.0-openjdk: Exception in thread "main" java.lang.UnsupportedClassVersionError: com/zabbix/gateway/JavaGateway has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 52.0 Для java-17-openjdk: java.lang.UnsupportedClassVersionError: com/zabbix/gateway/JavaGateway has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 61.0 Для java-11-openjdk: java.lang.UnsupportedClassVersionError: com/zabbix/gateway/JavaGateway has been compiled by a more recent version of the Java Runtime (class file version 65.0), this this version of the Java Runtime only recognizes class file versions up to 55.0
(Ответ для Vladislav Glinkin на комментарий #4) > Версия пакета: zabbix-java-gateway-7.0.16-alt1 > > Запускается только с java-21-openjdk. > > Иначе, в логах для java-1.8.0-openjdk: > Exception in thread "main" java.lang.UnsupportedClassVersionError: > com/zabbix/gateway/JavaGateway has been compiled by a more recent version of > the Java Runtime (class file version 65.0), this version of the Java Runtime > only recognizes class file versions up to 52.0 > > Для java-17-openjdk: > java.lang.UnsupportedClassVersionError: com/zabbix/gateway/JavaGateway has > been compiled by a more recent version of the Java Runtime (class file > version 65.0), this version of the Java Runtime only recognizes class file > versions up to 61.0 > > Для java-11-openjdk: > java.lang.UnsupportedClassVersionError: com/zabbix/gateway/JavaGateway has > been compiled by a more recent version of the Java Runtime (class file > version 65.0), this this version of the Java Runtime only recognizes class > file versions up to 55.0 А в чем состоит проблема? Агент собирается с тем jdk, какой назначен по-умолчанию в рамках репо/бранча, то, что бинарники, собранные на более новом jdk несовместимы с jre старых версий это особенности java.
Поведение, когда собранное более новым JDK приложение не работает на более старом JRE ожидаемое. Если в системе несколько версий JRE, то указать нужную можно через добавление файла /etc/sysconfig/zabbix-java-gateway и переназначения в нем переменной $JAVA с явным указанием /usr/lib/jvm/jre-21/bin/java