10

我正在尝试在本地运行 Kafka。我已经安装并运行了 Zookeeper。我已经下载了 Kafka 2.11-1.1.0 的二进制文件。我已将登录位置调整为server.config有效路径。当我运行时.\bin\windows\kafka-server-start.bat .\config\server.properties,我收到一条错误消息

该系统找不到指定的路径。

我可以看到这两个文件都存在于我的计算机上的正确位置 - 我应该排除什么故障? kafka-server-start:检查 server.config:检查

4

11 回答 11

17

我在运行 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"
于 2019-03-18T11:59:12.723 回答
6

我也有这个问题。在我的情况下,我在 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
于 2019-05-17T16:34:03.010 回答
5

kafka-run-class.bat事实证明,由于JAVA_HOME系统变量中的路径格式不正确(在我的情况下,我已将 /bin 添加到其中),因此引发了此错误。从路径中删除 /bin 并将其作为现有的 Java 安装文件夹,使得一切运行良好。

于 2018-07-01T06:52:35.717 回答
4

我有同样的问题,但这不是因为JAVA_HOME环境变量的路径格式错误。

这是因为我在包含空格的路径中提取了我的 kafka 二进制文件!

首先它在这里:

E:\Apache Kafka\kafka_2.11-2.1.0

然后我将它重新定位在这个新路径中(没有任何空格!):

E:\ApacheKafka\kafka_2.11-2.1.0

并且问题解决了!

希望这可以帮助。

于 2019-01-05T08:33:44.320 回答
3

正如许多人所提到的,如果您运行的任何 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
于 2019-04-29T12:40:06.823 回答
2

要添加到现有答案,您还可以在运行Kafka 提供 zookeeper-server-start的命令(以及文件夹中的几乎所有其他脚本bin/windows)时遇到错误,因为它也使用kafka-run-class,因此依赖于有效的JAVA_HOME环境变量路径。

cd D:\Downloads\kafka
.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties
于 2018-11-30T08:47:28.333 回答
1

迟到的回复,但我希望它对某人有所帮助。我遇到了同样的问题,发现有人将 JAVA 更新到了较新的版本,即我的 JAVA_HOME 系统变量指向一个不存在的文件夹。奇怪,因为我没有这样做,但上面的答案激励我检查它。

于 2019-03-27T09:37:39.257 回答
1

我面临同样的问题并通过以下步骤修复:

  • 确保您的环境变量为:

    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

它运行没有任何问题和错误。

于 2021-02-23T06:51:51.497 回答
0

我已经坚持了很长一段时间。以下是我为解决问题而采取的步骤:

  • 在环境变量中将JAVA_HOME 设置C:\Program Files\Common Files\Oracle\Java\javapath
  • 如果上述方法不能解决问题,请检查是否在kafka/bin/kafka-run-class.sh中使用了JAVA= $JAVA_HOME/bin/java。在这种情况下,您可能需要简单地在javapath下创建一个文件夹bin并将java.exe复制到其中。这应该可以解决问题。
于 2021-07-24T11:20:06.960 回答
0

我尝试了所有解决方案,我更改了 JAVA_HOME 不同的方法,但没有成功。解决方案:以管理员身份启动 cmd.exe 并执行命令: set JAVA_HOME=%ProgramFiles%\Java\jdk-17.0.1 (只会选择你的jdk版本)

于 2022-01-01T14:12:53.073 回答
-1

一个对我有用的简单解决方案 - 打开 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 安装路径中删除空格或将路径括在双引号中。

于 2019-07-28T05:22:17.987 回答