找不到日志存储的java安装错误

找不到日志存储的java安装错误,java,path,logstash,java-home,Java,Path,Logstash,Java Home,我在Windows8.1上下载了Logstash-1.5.0,并尝试在命令提示符下运行它 首先,我检查了java版本。 然后将目录更改为logstash-1.5.0/bin 然后输入命令logstash-e'input{stdin{}}output{elasticsearch{host=>localhost}stdout{}',它给出了以下错误: 找不到java_HOME指定的java安装 Logstash文件夹位于C:上,Java版本为1.7.0_25。我已经将JAVA_HOME环境变量设置为

我在Windows8.1上下载了Logstash-1.5.0,并尝试在命令提示符下运行它

首先,我检查了java版本。 然后将目录更改为logstash-1.5.0/bin 然后输入命令logstash-e'input{stdin{}}output{elasticsearch{host=>localhost}stdout{}',它给出了以下错误:

找不到java_HOME指定的java安装

Logstash文件夹位于C:上,Java版本为1.7.0_25。我已经将JAVA_HOME环境变量设置为jdk/bin目录,但它仍然不起作用


我是个新手。有人能详细地告诉我为什么会发生这种情况,并帮我修复它吗?

在Windows上,当您通过系统设置更改环境时,您必须关闭并重新打开命令shell,然后更改才会生效

逐步:

找到要使用的java JRE安装目录。例如:C:\ProgramFiles\Java\jre7 打开“开始”菜单右键单击“计算机”,然后选择“设置”。在右侧的系统设置窗口中,单击扩展系统设置。 在extended select environment variables选项卡上,将JAVA_HOME变量添加到路径中,然后单击OK。 打开命令shell,输入set并按enter键检查环境。看看是否设置了JAVA_HOME。 如果JAVA\u HOME现在设置正确,logstash应该可以工作。

如下设置JAVA\u HOME和PATH环境变量:

JAVA_HOME = C:\Program Files\Java\jdk1.7.0_25 
PATH = C:\Program Files\Java\jdk1.7.0_25\bin

在我的例子中,问题是我在JAVA_HOME变量的末尾设置了一个空格:

"set JAVA_HOME=c:\Programs\Java " 
而不是

"set JAVA_HOME=c:\Programs\Java"

而logstash无法解决这个问题:移除空间解决了这个问题

JAVA_HOME应该指向bin/上面的目录。您甚至可以在cygwin中以相同的方式声明JAVA_HOME。不需要使用/cygdrive路径。我很惊讶它同时需要JAVA_HOME和path?两个环境变量?。但是,logstash确实说:使用从PATH检索到的JAVA_HOME=C:\ProgramData\Oracle\JAVA\javapath\JAVA.exe-所以我想PATH很重要!那么为什么还需要JAVA_HOME呢?@TheRedPea JAVA_HOME在这种特定情况下可能不需要。但将JAVA_设置为家是一个很好的做法。因为一些基于java的应用程序,例如tomcat,ant依赖java_HOME。谢谢,我同意你的看法。另一项澄清;我们应该更改PATH用户变量还是PATH系统变量?[相关资料在这里]。事实证明,如果不设置JAVA_HOME,它仍然会抱怨:必须设置JAVA_HOME环境变量!。再次感谢!由于某些原因,我的AWS实例无法侦听在C:\ProgramData\Oracle\中不断查找的环境变量更改。。。!尽管PATH没有提到这一点,所以我只是在命令行会话中使用set命令来临时更改它们。请注意,我还有一个更新的版本,您的版本可能会更改set PATH=C:\Program Files\Java\jdk1.8.0\u 131\bin和set Java\u HOME=C:\Program Files\Java\jdk1.8.0\u 131,在Windows上,只需在批处理文件中使用set,无需更改系统配置就可以让事情变得更简单重新启动命令提示符!这解决了我的问题。