0

我正在学习 kafka,刚刚下载了 kafka 0.10.1(因为这是我的项目的要求),每当我运行这个命令行代码时

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

我得到这个错误

java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
    at kafka.utils.CoreUtils$.urlSafeBase64EncodeNoPadding(CoreUtils.scala:298)
    at kafka.utils.CoreUtils$.generateUuidAsBase64(CoreUtils.scala:286)
    at kafka.server.KafkaServer$$anonfun$getOrGenerateClusterId$1.apply(KafkaServer.scala:336)
    at kafka.server.KafkaServer$$anonfun$getOrGenerateClusterId$1.apply(KafkaServer.scala:336)
    at scala.Option.getOrElse(Option.scala:121)
    at kafka.server.KafkaServer.getOrGenerateClusterId(KafkaServer.scala:336)
    at kafka.server.KafkaServer.startup(KafkaServer.scala:203)
    at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:39)
    at kafka.Kafka$.main(Kafka.scala:67)
    at kafka.Kafka.main(Kafka.scala)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 10 more

我实际上使用的是 java 12 并javax/xml/bind/*已从 java 11 中删除,所以一些建议是在 pom.xml 文件中添加依赖项,但我从 .tar 文件中解压缩了 kafka 而不是使用 maven 构建它,所以我该如何解决这个错误卡夫卡??

我应该为此下载java-8吗?

4

3 回答 3

1

我正在学习kafka,刚刚下载了kafka 0.10.1

这个版本的 Kafka 不支持 Java 8 以上的版本。

只有最新的 Kafka 2.2.0(很可能对您的学习目的也一样),增加了对 Java 11 的支持

于 2019-04-05T15:36:58.823 回答
0

自 Java 11 起,此javax/xml/bindAPI 已被删除。您可以参考How to resolve java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException in Java 9以获得解决方法

于 2019-04-05T10:05:37.953 回答
0

我正在使用JDK10。为此,我添加了如下内容以使其适合我。1) 编辑 kafka-run-class.bat 2) set COMMAND=%JAVA% –add-modules java.xml.bind其余行保持不变。3)运行kafka服务器

于 2019-06-07T06:32:23.363 回答