[kafka小白篇]kafka启动过程中出现找不到或无法加载主类jdk/lib

1.问题描述

在正常执行zookeeper服务与kafka服务时,出现以下报错内容

Zookeeper server启动命令

bin\windows\zookeeper-server-start.bat config\zookeeper.properties
Kafka

Kafka broker service 启动命令

bin\windows\kafka-server-start.bat config\server.properties

2.问题分析

在执行kafka启动与zookeeper启动命令的时候都出现这个错误,首先可以排除kafka本身的问题,所以肯定是java的配置问题。

查看java的环境变量以及相应的版本号

再与kafka-run-class.bat文件中的java路径进行比对

比对无误之后再次执行启动命令,发现依旧存在”找不到或无法加载主类“的问题

3.进一步分析

于是就想到了java的CLASSPATH路径问题(其实看到这个问题的时候可以直接找CLASSPATH的麻烦了)

而CLASSPATH是javac编译器的一个环境变量。它的作用与import、package关键字有关。设置Classpath的目的,在于指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的.class文件。我们需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。此处的报错内容就是kafka找不到dt.jar与tools.jar两个包中的类

查看CLASSPATH

发现其中的第一个路径中存在Java jdk,路径中是不允许存在空格的,其中整个路径上前面的“.”不可少,它代表了我们为自己的java类建立的工作路径,其它的是jdk自带的标准类库路径。

然后再次执行,出现新的问题

此外,提一句windows中配置环境变量需要注意的地方:路径组件既不能包含任何控制字符,也不能包含以下字符:/"<>|

这个就是kafka-run-class.bat文件中CLASSPATH没有配置好的问题

要严格按照这个进行配置

set COMMAND=%JAVA% %KAFKA_HEAP_OPTS% %KAFKA_JVM_PERFORMANCE_OPTS% %KAFKA_JMX_OPTS% %KAFKA_LOG4J_OPTS% -cp "%CLASSPATH%" %KAFKA_OPTS% %*

网上的有一些其他版本,比如

set COMMAND=%JAVA% %KAFKA_HEAP_OPTS% %KAFKA_JVM_PERFORMANCE_OPTS% %KAFKA_JMX_OPTS% %KAFKA_LOG4J_OPTS% -cp "%CLASSPATH%" %KAFKA_OPTS% %

或者程序本身

set COMMAND=%JAVA% %KAFKA_HEAP_OPTS% %KAFKA_JVM_PERFORMANCE_OPTS% %KAFKA_JMX_OPTS% %KAFKA_LOG4J_OPTS% -cp  %CLASSPATH%  %KAFKA_OPTS% %

多*或者少”“都是有问题的。

最后也是成功运行

灵感来源:https://www.cnblogs.com/netdbo/p/10832365.html

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值