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

bgibtngc  于 2021-06-08  发布在  Kafka
关注(0)|答案(8)|浏览(636)

我想在本地管理Kafka。我已经安装并运行了zookeeper。我已经下载了Kafka2.11-1.1.0的二进制文件。我已经调整了日志的位置 server.config ,指向有效路径。当我跑的时候 .\bin\windows\kafka-server-start.bat .\config\server.properties ,我得到一个错误
系统找不到指定的路径。
我可以看到,这两个文件都存在于我的电脑在适当的位置,我应该排除什么?

xkftehaa

xkftehaa1#

正如许多人提到的,如果您运行的任何kafka*.bat脚本(包括zookeeper)引用了一个错误的java\u home系统变量,或者其中包含一个空格,则可能会发生这种情况。
您可以通过将javau home更改为缩短的路径名来解决这个问题。例如

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

附笔
为了方便起见,我创建了一个cmd桌面快捷方式,将java\u 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
z0qdvdin

z0qdvdin2#

一个对我有用的简单解决方案—打开kafka-run-class.sh文件,转到num 306行,将$java括在“”中。
exec“$java”$kafka\u heap\u opts$kafka\u jvm\u performance\u opts$kafka\u gc\u log\u opts$kafka\u jmx\u opts$kafka\u log4j\u opts-cp$classpath$kafka\u opts“$@”
如果java路径中有空格,则会出现此问题。从java安装路径中删除空格或将路径括在双引号中。

ws51t4hk

ws51t4hk3#

我也有同样的问题,但这不是因为错误的路径 JAVA_HOME 环境变量。
那是因为我在一条包含空格的路径中提取了我的Kafka二进制序列!
首先是这里:
电子邮箱:apache kafka\kafka\u 2.11-2.1.0
然后我将它重新定位到这个新路径(没有任何空格!):
电子邮箱:\apachekafka\kafka\u 2.11-2.1.0
问题解决了!
希望这有帮助。

xam8gpfp

xam8gpfp4#

我也有这个问题。在我的例子中,java安装在c:\java\bin中,java\u home定义为
java\u home=c:\java\bin
我需要改变
c:\tools\kafka\u 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,而c:\java\bin/bin/java在同一个文件的306上失败了。
顺便说一句:我在windows中使用gitbashshell。这允许我运行bin/.sh脚本而不是bin/windows/.bat脚本
我还更改了中datadir的值
c:\tools\kafka\u 2.12-2.2.0\config\zookeeper.properties

dataDir=C:\\Tools\\kafka_2.12-2.2.0\\zookeeper-data
bqf10yzr

bqf10yzr5#

回信迟了,但我希望它能帮助别人。我也遇到了同样的问题,发现有人将java更新到了一个更新的版本,也就是说,我的javahome系统变量指向了一个不存在的文件夹。奇怪的是,我还没有做,但上面的答案启发我去检查它。

uqzxnwby

uqzxnwby6#

要添加到现有答案中,还可以在运行提供的kafka时获取错误 zookeeper-server-start 命令(以及 bin/windows 文件夹),因为它还利用 kafka-run-class ,因此依赖于有效的 JAVA_HOME 环境变量路径。

cd D:\Downloads\kafka
.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties
ct2axkht

ct2axkht7#

原来这个错误是由 kafka-run-class.bat 因为通往 JAVA_HOME 在系统中,变量的格式不正确(在我的例子中,我添加了/bin),从路径中删除/bin,并将其作为现有的java安装文件夹,可以使一切正常运行。

yqlxgs2m

yqlxgs2m8#

我在运行kafka-server-start.bat命令时遇到了这个问题。我仔细检查以确保kafka二进制文件路径中没有空格,javahome中也没有正确的语法。
最后意识到问题是由于javau主路径中有一个空格造成的。
c:\程序文件\java\jdk1.8.0\U 144
程序和文件之间有一个空格。我更改了java的目录,并将java\u home变量更新为
c:\java\jdk1.7.0\U 51版本
这个改变解决了我的问题。我使用setx命令更改javahome中的值。

setx -m JAVA_HOME "C:\Java\jdk1.7.0_51"

相关问题