Kafka 无法解析 javax/xml/bind/* ClassNotFoundExeption for java 12?
Kafka unable to resolve javax/xml/bind/* ClassNotFoundExeption for java 12?
我正在学习 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.apply(KafkaServer.scala:336)
at kafka.server.KafkaServer$$anonfun$getOrGenerateClusterId.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 构建它,所以我如何解决 kafka 中的这个错误?
我应该为此下载 java-8 吗?
此 javax/xml/bind
API 自 Java 11 起已删除。您可以参考 的解决方法
I'm learning kafka and just downloaded kafka 0.10.1
此版本的 Kafka 不支持 Java 8 以上的版本。
只有最新的 Kafka 2.2.0(很可能对您的学习目的是一样的),增加了对 Java 11
的支持
我正在使用 JDK10。为此,我添加了类似下面的内容以使其对我有用。
1) 编辑 kafka-run-class.bat
2) set COMMAND=%JAVA% –add-modules java.xml.bind 其余行保持不变。
3) 运行 卡夫卡服务器
我正在学习 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.apply(KafkaServer.scala:336)
at kafka.server.KafkaServer$$anonfun$getOrGenerateClusterId.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 构建它,所以我如何解决 kafka 中的这个错误?
我应该为此下载 java-8 吗?
此 javax/xml/bind
API 自 Java 11 起已删除。您可以参考
I'm learning kafka and just downloaded kafka 0.10.1
此版本的 Kafka 不支持 Java 8 以上的版本。
只有最新的 Kafka 2.2.0(很可能对您的学习目的是一样的),增加了对 Java 11
的支持我正在使用 JDK10。为此,我添加了类似下面的内容以使其对我有用。 1) 编辑 kafka-run-class.bat 2) set COMMAND=%JAVA% –add-modules java.xml.bind 其余行保持不变。 3) 运行 卡夫卡服务器