项目用到dubbo,zookeeper。zookeeper启动时报错,第一次接错,摸不着头脑,就使用便利性来看,zookeeper不如Eureka,Consul。不过它也有自己的优点。
这里缺少一张截图,因为起初报错的时候没有截图。我就直接贴上第二张截图:
起初错误信息是说“'Program ' 不是内部或外部命令,也不是可运行的程序或批处理文件。”,实际上根本就没有这个命令,因为JDK安装目录一般是../Program Files,这里的“Program Files”是应用默认安装目录,两个单词之间有个空格,命令行错误的把目录名通过空格分割识别成了命令,导致出错。
网上没少查,但都是说修改bin目录下的zkEnv.cmd里面,根本没有作用。
找了半天,发现上图中call后面一连串的鬼东西实际上都是命令,其中包含了目录。这串命令配置在bin目录下的zkServer.cmd文件里面。
其实这里我之所以确定问题的关键,是因为上文中我提到的“'Program ' 不是内部或外部命令,也不是可运行的程序或批处理文件。”,解决方案很简单,为了防止配置后再次出现“'Program ' 不是内部或外部命令,也不是可运行的程序或批处理文件。”错误,我直接把JDK1.8.0_172(我装了4个版本)的安装目录复制到"D:\Java\"中,然后在zkServer.cmd文件里作如下配置:
这里我直接配置了绝对路径,JDK环境问题解决。