我正在尝试在本地运行 Kafka。我已经安装并运行了 Zookeeper。我已经下载了 Kafka 2.11-1.1.0 的二进制文件。我已将登录位置调整为server.config
有效路径。当我运行时.\bin\windows\kafka-server-start.bat .\config\server.properties
,我收到一条错误消息
该系统找不到指定的路径。
我正在尝试在本地运行 Kafka。我已经安装并运行了 Zookeeper。我已经下载了 Kafka 2.11-1.1.0 的二进制文件。我已将登录位置调整为server.config
有效路径。当我运行时.\bin\windows\kafka-server-start.bat .\config\server.properties
,我收到一条错误消息
该系统找不到指定的路径。
我在运行 kafka-server-start.bat 命令时遇到了这个问题。我仔细检查以确保 kafka 二进制文件路径中没有空格以及 JAVA_HOME 中的语法正确。
终于意识到问题是由于 JAVA_HOME 路径中的空格造成的。
C:\Program Files\Java\jdk1.8.0_144
程序和文件之间有一个空格。我更改了 Java 的目录并将 JAVA_HOME 变量更新为
C:\Java\jdk1.7.0_51
这个改变解决了我的问题。我使用 setx 命令更改 JAVA_HOME 中的值。
setx -m JAVA_HOME "C:\Java\jdk1.7.0_51"
我也有这个问题。在我的情况下,我在 C:\Java\bin 中安装了 java,并将 JAVA_HOME 定义为
JAVA_HOME=c:\Java\bin
我需要改变
c:\Tools\kafka_2.12-2.2.0\bin\kafka-run-class.sh
第 224 到 229 行从此
# Which java to use
if [ -z "$JAVA_HOME" ]; then
JAVA="java"
else
JAVA="$JAVA_HOME/bin/java"
fi
对此:
# Which java to use
if [ -z "$JAVA_HOME" ]; then
JAVA="java"
else
JAVA="$JAVA_HOME/java"
fi
因为它将 java 分配给 C:\Java\bin/bin/java,然后在同一文件的 306 上失败。
顺便说一句:我在 Windows 中使用 git bash shell。这允许我运行 bin/*.sh 脚本而不是 bin/windows/*.bat 脚本
我也改变了 dataDir 的值
C:\Tools\kafka_2.12-2.2.0\config\zookeeper.properties
至
dataDir=C:\\Tools\\kafka_2.12-2.2.0\\zookeeper-data
kafka-run-class.bat
事实证明,由于JAVA_HOME
系统变量中的路径格式不正确(在我的情况下,我已将 /bin 添加到其中),因此引发了此错误。从路径中删除 /bin 并将其作为现有的 Java 安装文件夹,使得一切运行良好。
我有同样的问题,但这不是因为JAVA_HOME
环境变量的路径格式错误。
这是因为我在包含空格的路径中提取了我的 kafka 二进制文件!
首先它在这里:
E:\Apache Kafka\kafka_2.11-2.1.0
然后我将它重新定位在这个新路径中(没有任何空格!):
E:\ApacheKafka\kafka_2.11-2.1.0
并且问题解决了!
希望这可以帮助。
正如许多人所提到的,如果您运行的任何 kafka *.bat 脚本(包括 zookeeper)引用了错误的 JAVA_HOME 系统变量或包含空格的系统变量,就会发生这种情况。
您可以通过将 JAVA_HOME 更改为缩短的路径名来解决此问题。例如
set JAVA_HOME=C:\Progra~1\Java\jdk-11.0.1
附言
为方便起见,我创建了一个 CMD 桌面快捷方式,将 JAVA_HOME 设置为适合 Kafka,并将 CD 设置为我的 kafka 安装。我的桌面快捷方式如下:
%windir%\System32\cmd.exe /k set JAVA_HOME=C:\Progra~1\Java\jdk-11.0.1& f: & cd f:\kafka\kafka_2.12-2.2.0
要添加到现有答案,您还可以在运行Kafka 提供 zookeeper-server-start
的命令(以及文件夹中的几乎所有其他脚本bin/windows
)时遇到错误,因为它也使用kafka-run-class
,因此依赖于有效的JAVA_HOME
环境变量路径。
cd D:\Downloads\kafka
.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties
迟到的回复,但我希望它对某人有所帮助。我遇到了同样的问题,发现有人将 JAVA 更新到了较新的版本,即我的 JAVA_HOME 系统变量指向一个不存在的文件夹。奇怪,因为我没有这样做,但上面的答案激励我检查它。
我面临同样的问题并通过以下步骤修复:
确保您的环境变量为:
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_261
ZOOKEEPER_HOME=C:\apache-zookeeper-3.6.2
KAFKA_HOME=C:\kafka_2.13-2.7.0
编辑系统变量中的“路径”并键入:
%JAVA_HOME% / bin, %ZOOPKEEPER_HOME / bin and %KAFKA_HOME% / bin
现在,打开终端,运行 zoopkeeper 和 kafka
对于动物园管理员:zkserver
对于卡夫卡:bin\windows\kafka-server-start.bat .\config\server.properties
它运行没有任何问题和错误。
我已经坚持了很长一段时间。以下是我为解决问题而采取的步骤:
我尝试了所有解决方案,我更改了 JAVA_HOME 不同的方法,但没有成功。解决方案:以管理员身份启动 cmd.exe 并执行命令: set JAVA_HOME=%ProgramFiles%\Java\jdk-17.0.1 (只会选择你的jdk版本)
一个对我有用的简单解决方案 - 打开 kafka-run-class.sh 文件,转到第 306 行,将 $JAVA 括在“”中。
exec "$JAVA" $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@"
如果您的 Java 路径中有空格,则会出现此问题。从 Java 安装路径中删除空格或将路径括在双引号中。