在Windows 10上运行Kafka失败:系统找不到指定的路径

时间:2018-07-01 06:32:40

标签: windows apache-kafka

我正在尝试在本地运行Kafka。我已经安装并运行了Zookeeper。我已经下载了Kafka 2.11-1.1.0的二进制文件。我已将server.config中的日志位置调整为有效路径。运行.\bin\windows\kafka-server-start.bat .\config\server.properties时出现错误

  

系统找不到指定的路径。

我可以看到这两个文件都存在于我的计算机上的正确位置,该怎么解决? kafka-server-start: check server.config: check

10 个答案:

答案 0 :(得分:4)

结果是kafka-run-class.bat引发了此错误,因为系统变量中JAVA_HOME的路径格式不正确(在我的情况下,我已经向其中添加了/ bin。)从路径,并将其作为现有的Java安装文件夹,可以使一切正常运行。

答案 1 :(得分:3)

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

那是因为我在一个包含空格的路径中提取了我的kafka bineries!

首先是在这里

  

E:\ Apache Kafka \ kafka_2.11-2.1.0

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

  

E:\ ApacheKafka \ kafka_2.11-2.1.0

问题解决了!

希望这会有所帮助。

答案 2 :(得分: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

答案 3 :(得分:1)

我在运行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"

答案 4 :(得分:1)

最新答复,但希望对您有所帮助。我遇到了同样的问题,发现有人将JAVA更新到了较新的版本,即我的JAVA_HOME系统变量指向的文件夹不存在。我还没有做过,但很奇怪,但是上面的答案启发了我进行检查。

答案 5 :(得分:1)

正如许多人提到的,如果您运行的任何kafka * .bat脚本(包括zookeeper)引用了错误的JAVA_HOME系统变量或包含空格的变量,就会发生这种情况。

您可以通过将JAVA_HOME更改为缩短的路径名来解决此问题。 例如

set JAVA_HOME=C:\Progra~1\Java\jdk-11.0.1

P.S。

为方便起见,我创建了一个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

答案 6 :(得分:0)

我也有这个问题。就我而言,我在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

答案 7 :(得分:0)

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

  • 确保您的环境变量为:

    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

    对于 Zoopkeeperzkserver

    对于Kafkabin\windows\kafka-server-start.bat .\config\server.properties

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

答案 8 :(得分: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 复制到其中。这应该可以解决问题。

答案 9 :(得分:-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安装路径中删除空格,要么将该路径用双引号引起来。