elasticsearch安装遇到错误“此时不应有 \elast

2020-03-01  本文已影响0人  昊天怪鱼

最近学习ELK,需要进行环境搭建工作,将安装过程中遇到的问题记录下来。

问题描述

从网上下载好elasticsearch的zip文件后安装到G:\Program Files (x86)目录下面(这里是个大坑)。
解压完毕,直接双击击bin目录下面的elasticsearch.bat,结果启动窗口一闪而过,想象中的启动窗口打印日志的情况没有出现,于是只得通过打开PowerShell窗口进入elasticseach/bin目录下面执行elasticsearch.bat,很明显启动报错,下面是报错信息

微信截图_20200301180426.png

问题思路

遇到错误不要,复制粘贴求搜索。同样的问题,网上肯定有人遇到过。但是很不幸,花费了好大一会儿功夫,没有同样的问题解决方案。网上遇到问题大都是关于jdk环境的,很明显我这里的问题不是同一类。

问题解决

不是java环境变量的问题,那就是elasticsearch环境的问题。这里根据之前的经验,无非是路径中带中文或者特殊符号导致路径问题,于是新加文件夹G:\devlop,将elasticsearch的文件安装到G:\devlop下面,ok,正常启动。

问题初步分析

既然是路径的问题那就好办了,排除法走起。
首先是空格,新建一个带空格的目录,将软件包复制过去,启动正常,因此排除,然后是“(”,同样操作,启动正常;
最后是“)”,啊偶,启动失败,那么问题就是它了。

问题深入分析

既然知道了是什么导致我们的问题产生,那么就还需要知道为什么它会导致问题的产生,这才是学习技术的乐趣。
既然是执行elasticsearch.bat这个脚本出现的问题,那么问题肯定能通过脚本源码找到答案,IDE打开脚本走起。

脚本里面很关键的一句代码如下:

@setlocal
for /F "usebackq delims=" %%a in (`"%JAVA% -cp "%ES_CLASSPATH%" "org.elasticsearch.tools.launchers.JvmOptionsParser" "%ES_JVM_OPTIONS%" || echo jvm_options_parser_failed"`) do set JVM_OPTIONS=%%a
@endlocal & set "MAYBE_JVM_OPTIONS_PARSER_FAILED=%JVM_OPTIONS%" & set ES_JAVA_OPTS=%JVM_OPTIONS:${ES_TMPDIR}=!ES_TMPDIR!% %ES_JAVA_OPTS%

很明显%ES_CLASSPATH%这里需要执行带有括号的安装路径。
自己对于VB的bat脚本语法不熟悉,只能求助网络。一番查找后得到相关信息:BAT文件命名中含有英文括号运行就会出错。
到这里算问题基本解决,因为用不到VB也就没有对里面带到英文括号的问题进行更加深入的研究,后面自己使用的时候注意即可。
以上纯属个人分析,如有谬误之处,多谢赐教!
参考资料:
https://blog.csdn.net/qq_40962368/article/details/87160693
https://blog.csdn.net/kingo0/article/details/82114215

上一篇下一篇

猜你喜欢

热点阅读