感謝 Zparkle提供的答案
本文相當于轉(zhuǎn)載,如果解決了問題可以為原文作者點贊~
寫在前面:
- 本問題應該僅會發(fā)生在windows系統(tǒng)
- Logstash 版本為6.x.x可能會發(fā)生這個問題,別的版本我不知道
- 此文僅能解決無法加載主類后面出現(xiàn)路徑順序混亂
Files\jdkx.x.x\lib;C:Programs這種情況,如果有別的情況導致此問題這篇文章可能解決不了 - 改任何配置文件記得備份哦
解決方案:
找到 logstash\bin\logstash.bat
將這一行
%JAVA% %JAVA_OPTS% -cp %CLASSPATH% org.logstash.Logstash %*
改成
%JAVA% %JAVA_OPTS% -cp "%CLASSPATH%" org.logstash.Logstash %*
實際上就是個雙引號的區(qū)別
問題發(fā)生的原因
一般大家java都裝在 program files 底下了吧,環(huán)境變量的 %CLASSPATH% 是不是 %JAVA_HOME%\lib ?
我的 %JAVA_HOME% 是 C:\Program Files\Java\Jdk xx.xx.xx
可以試著寫這么一個bat文件
起名: 測試空格.bat
echo %JAVA_HOME%
echo "%JAVA_HOME%"
%JAVA_HOME%\bin\java
"%JAVA_HOME%"\bin\java
打開命令行,把bat拖進去,回車
看看每個命令打印出來的結(jié)果就一目了然啦
第三個命令會報錯
告訴你 ‘C:\Programs’ 不是內(nèi)部或外部命令
所以這其實就是個cmd指令斷句的問題……
命令四不會出錯,因為路徑加上了引號,所以加上引號就不會出現(xiàn)這個問題了