Как исправить «java.lang.UnsupportedClassVersionError» при kafka-start-server.sh

#java #apache-kafka

#java #apache-kafka

Вопрос:

Я пытаюсь установить kafka на Cloudera виртуальную машину quickstart. Я выполнил все шаги. Но я получаю следующую ошибку при запуске kafka сервера:

Исключение в потоке «main» java.lang.Ошибка UnsupportedClassVersionError: org / apache / kafka /common /utils / KafkaThread: неподдерживаемая основная.младшая версия 52.0 на java.lang.ClassLoader.defineClass1 (собственный метод)

В моем .bashrc файле установлены следующие переменные среды

 export PATH="/usr/java/jdk1.8.0_211/bin:$PATH"

export KAFKA_HOME="/opt/kafka/kafka_2.11-2.2.0"
export PATH="$KAFKA_HOME/bin:$PATH"

export KAFKA_CLASSPATH="$KAFKA_HOME/libs/"
export KAFKA_CONF_DIR="$KAFKA_HOME/config/"
  

Я пытался использовать оба java 7 и java 8 , но ошибка все еще сохраняется.

Заранее спасибо за вашу помощь.

Комментарии:

1. Ошибка означает, что вы используете не Java 8, а более старую версию. можете ли вы попробовать запустить java --version перед скриптом?

2. Вы используете более старую версию Java (до 8) во время выполнения. Вы уверены, что ваш путь обновляется?

Ответ №1:

Кафка пытается найти команду Java в JAVA_HOME

Попробуйте

 export JAVA_HOME=/usr/java/jdk1.8.0_211
export PATH="$JAVA_HOME/bin:$PATH"

kafka-server-start server.properties
  

Примечание: Вам не нужна среда Hadoop для запуска Kafka, поэтому просто новая виртуальная машина с Java 8 (или 11) будет работать с последней версией Kafka.

Или вы могли бы использовать Docker

Ответ №2:

Неподдерживаемая major.minor версия 52.0 указывает на Java 8. Это означает, что установленная вами версия Kafka нуждается в Java 8 для правильной работы.

Другие версии см. Ниже:

Java 1.2 использует основную версию 46, Java 1.3 использует основную версию 47, Java 1.4 использует основную версию 48, Java 5 использует основную версию 49, Java 6 использует основную версию 50, Java 7 использует основную версию 51, Java 8 использует основную версию 52, Java 9 использует основную версию 53, Java 10 использует основную версию 54, Java 11 использует основную версию 55, Java 12 использует основную версию 56, Java 13 использует основную версию 57, Java 14 использует основную версию 58

Выполните эти шаги, и это должно сработать:

  1. Убедитесь, какая версия Java у вас установлена, введя java -version и соответствующим образом сопоставьте версию в соответствии с сообщением об ошибке, которое вы получаете от Kafka Start Script.

  2. Введите, какая Java, и получите путь, по которому Java установлена в вашей системе.

Пример: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el6_10.x86_64/jdk/jdk1.8.0_221/bin/java

  1. Перейдите в базовый каталог и отредактируйте файл .bashrc и добавьте следующие три строки.

1-я строка: путь на шаге 2 перед bin должен быть назначен JAVA_HOME.

Пример: экспортировать JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el6_10.x86_64/jdk/jdk1.8.0_221

2-я строка: PATH=$JAVA_HOME/bin:$PATH

3-я строка: путь экспорта

  1. Исходный файл .bashrc, выполнив следующую команду:

источник .bashrc

  1. Затем перейдите в установленную папку Kafka и выполните приведенную ниже команду, и она должна сработать:

bin/kafka-server-start.sh config/server.properties

Наслаждайтесь кодированием!