如何在kafka-start-server.sh上修复“ java.lang.UnsupportedClassVersionError”

时间:2019-04-23 20:52:18

标签: java apache-kafka

我正在尝试在kafka quickstart vm上安装Cloudera。我已经完成了所有步骤。但是在启动kafka服务器时出现以下错误:

  

线程“主”中的异常java.lang.UnsupportedClassVersionError:org / apache / kafka / common / utils / KafkaThread:不支持的major.minor版本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 7java 8,但错误仍然存​​在。

预先感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

Kafka尝试在JAVA_HOME处找到Java命令

尝试

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)的全新VM才能与最新的Kafka一起使用。

或者您可以使用Docker

答案 1 :(得分:0)

不受支持的major.minor版本52.0指向Java8。这意味着您安装的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 -version确定已安装的Java版本,并根据从Kafka启动脚本收到的错误消息相应地映射该版本。

  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文件,然后添加以下三行。

第一行:必须将bin中第2步中的路径分配给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 >

第二行: PATH = $ JAVA_HOME / bin:$ PATH

第三行:导出路径

    通过执行以下命令
  1. .bashrc源文件:

源.bashrc

  1. 然后转到Kafka安装的文件夹并执行以下命令,它应该可以工作:

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

享受编码!