当logstash启动时,首先要注意正确配置java
并且最近版本的logstash要求java8
在搞定以上后确认环境变量没有问题
再确认logstash所在的目录 不存在含有空格的文件夹名称
在这所有所有之后还是会报错:找不到或无法加载主类 (乱序地址)
解决方案
废话不多说:找到logstash/bin目录下的logstash.bat
打开编辑,找到如下行
%JAVA% %JAVA_OPTS% -cp "%CLASSPATH%" org.logstash.Logstash %*
这行与你的应该有所区别,没错
将%CLASSPATH%改为"%CLASSPATH%"即可解决
解释
由于我的jdk放置在系统盘的program file文件夹下,因此我的环境变量的classpath中有两个包含空格的路径,批处理命令将第一个空格前的内容作为java -cp命令中的classpath地址传入, 后两个空格间的"Files\Java\jdk1.8.0_161\lib;G:"Program"自然就作为主类传入了,因此产生了如此奇怪的输出。