Running Kafka on Windows 10 fails: The system cannot find the path specified

I had this problem as well. In my case I have java installed in C:\Java\bin and JAVA_HOME defined as

JAVA_HOME=c:\Java\bin

I needed to change

c:\Tools\kafka_2.12-2.2.0\bin\kafka-run-class.sh

lines 224 to 229 from this

# Which java to use
if [ -z "$JAVA_HOME" ]; then
  JAVA="java"
else
  JAVA="$JAVA_HOME/bin/java"
fi

to this:

# Which java to use
if [ -z "$JAVA_HOME" ]; then
  JAVA="java"
else
  JAVA="$JAVA_HOME/java"
fi

because it was assigning java to C:\Java\bin/bin/java which was then failing on 306 of the same file.

BTW: I'm using a git bash shell in windows. This allows me to run the bin/*.sh scripts instead of the bin/windows/*.bat scripts

Also I changes the value of the dataDir in

C:\Tools\kafka_2.12-2.2.0\config\zookeeper.properties

to

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

I faced this issue while running the kafka-server-start.bat command. I double checked to ensure that there was no spaces in the kafka binaries path as well as correct syntax in JAVA_HOME.

Finally realized that the issue was due to a space in the JAVA_HOME path.

C:\Program Files\Java\jdk1.8.0_144

There is a space between Program and Files. I changed the directory of Java and updated the JAVA_HOME variable to

C:\Java\jdk1.7.0_51

This change solved my issue. I used the setx command to change the value in JAVA_HOME.

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