kafka无法解析javax/xml/bind/*classnotfoundexeption for java 12?

f4t66c6m  于 2021-06-06  发布在  Kafka
关注(0)|答案(3)|浏览(510)

我正在学习Kafka,刚刚下载了Kafka0.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

我实际上在用java12和 javax/xml/bind/* 是从Java11中删除的,所以有人建议在pom.xml文件中添加依赖项,但我从.tar文件中解压了kafka,而不是使用maven构建它,所以如何解决kafka中的这个错误??
我应该为此下载java-8吗??

6psbrbz9

6psbrbz91#

这个 javax/xml/bind 从Java11开始,api就被删除了。您可以参考如何在Java9中解析java.lang.noclassdeffounderror:javax/xml/bind/jaxbeException以了解解决方法

wnavrhmk

wnavrhmk2#

我正在学习Kafka,刚刚下载了Kafka0.10.1
这个版本的kafka不支持8以上的java版本。
只有最新的kafka2.2.0(对于您的学习目的,它很可能也会起同样的作用)添加了对java11的支持

xnifntxz

xnifntxz3#

我使用的是jdk10。为此,我添加了如下内容,使它为我工作。1) 编辑kafka-run-class.bat 2)set命令=%java%–add modules java.xml.bind其余行保持不变。3) 运行kafka服务器

相关问题