系统相关
首页 > 系统相关> > 关于在windows中zookeeper闪退

关于在windows中zookeeper闪退

作者:互联网

本人用的版本是 apache-zookeeper-3.7.0-bin

网上说是在zkServer.cmd最后一行加入pause,就可以看到错误信息,然而我加了后,执行zkServer.cmd也还是闪退。然后百度发现pause是起到一个暂停的作用,如果在执行到之前bat就退出了,就没意义了,所以我穿插在所有行都写入一个pause,发现执行到这一行时闪退

call "%~dp0zkEnv.cmd"

这里表示是调用了zkEnv.cmd,于是我又在这个bat中每一有效行穿插pause,然后直接执行zkEnv.cmd,发现执行到这个if判断时闪退

if not exist "%JAVA_HOME%"\bin\java.exe (
  echo Error: JAVA_HOME is incorrectly set: %JAVA_HOME%
  echo Expected to find java.exe here: %JAVA_HOME%\bin\java.exe
  goto :eof
)

在这个判断前使用echo打印,打印结果:

echo "%JAVA_HOME%\bin\java.exe"

打印出来发现jdk位置是正确的:C:\Program Files (x86)\Java\jdk1.8.0_201\bin\java.exe

然后我怀疑是Program Files (x86)这个路径存在空格或者是括号啥的特殊字符,导致无法正常识别,为了排查,复制一份java目录及其下所有文件到D盘根目录,在bat中set后再echo打印

set JAVA_HOME=D:\Java\jdk1.8.0_201
echo "%JAVA_HOME%\bin\java.exe"

打印结果:

"D:\Java\jdk1.8.0_201\bin\java.exe"

这次终于不闪退了

 综上来说,得出结论:

1.JAVA JDK 的路径尽量不要带有特殊字符、中文字符等识别会出错的字符

2.bat中不是写上了pause就一定能阻止强退的,一定要搞清楚强退的原因,才能对症下药。必要的时候每一有效行后面都加pause,来定位出错的位置,再进一步解决问题

后续我这边报的错为无效配置(invalid config exiting abnormally)

参考这位朋友的文章,问题得到解决

zkServer.cmd报错invalid config exiting abnormally解决_sinat_36748650的博客-CSDN博客在zookeeper的conf文件目录下新建zoo.cfg,把zoo_sample.cfg的内容复制到这里面去修改里面内容:dataDir=f:\java study\datadataLogDir=f:\java study\log其中自己创建data和log目录,将对应路径写在zoo.cfg即可。...https://blog.csdn.net/sinat_36748650/article/details/85807716

标签:bin,exe,java,windows,zookeeper,cmd,pause,JAVA,闪退
来源: https://blog.csdn.net/a26637896/article/details/123113308