感谢 Zparkle提供的答案
本文相当于转载,如果解决了问题可以为原文作者点赞~
写在前面:
- 本问题应该仅会发生在windows系统
- Logstash 版本为6.x.x可能会发生这个问题,别的版本我不知道
- 此文仅能解决无法加载主类后面出现路径顺序混乱
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 %*
实际上就是个双引号的区别
问题发生的原因
一般大家java都装在 program files
底下了吧,环境变量的 %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拖进去,回车
看看每个命令打印出来的结果就一目了然啦
第三个命令会报错
告诉你 ‘C:\Programs’ 不是内部或外部命令
所以这其实就是个cmd指令断句的问题……
命令四不会出错,因为路径加上了引号,所以加上引号就不会出现这个问题了
网友评论