问题 无法找到logstash的java安装错误


我在Windows 8.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目录,但它仍然无法正常工作。

我是Logstash的新手。有人可以告诉我为什么会发生这种情况并帮助我解决这个问题吗?


5569
2018-05-24 19:17


起源

JAVA_HOME 应该指向上面的目录 bin/。 - Qix
可能重复 如何在Windows 7上设置java_home? - Qix


答案:


设置 JAVA_HOME 和 PATH 像这样的环境变量:

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

13
2018-05-24 19:24



谢谢你@Razib。 - Asma Zinneera Jabir
您甚至可以在cygwin中以相同的方式声明JAVA_HOME。无需使用/ cygdrive路径。 - klimpergeist
我很惊讶它需要 都 环境变量(两者都有 JAVA_HOME 和 PATH?)。但是,logstash确实说: Using JAVA_HOME=C:\ProgramData\Oracle\Java\javapath\java.exe retrieved from PATH  - 所以我猜PATH很重要!那为什么呢 JAVA_HOME 还需要吗? - The Red Pea
在这种特定情况下,@ TheRedPea JAVA_HOME可能不需要。但它的好习惯是设置JAVA_HOME。导致一些基于java的应用程序(例如 - tomcat,ant)依赖于JAVA_HOME。 - Razib
谢谢,我同意你的看法。另一个澄清;我们应该改变吗? PATH  用户 变量,或 Path  系统 变量? ([相关内容])。事实证明,如果你 别 组 JAVA_HOME,它仍然会抱怨: JAVA_HOME environment variable must be set!。再次感谢! - The Red Pea


在我的情况下,问题是我设置了 JAVA_HOME 变量最后有一个空格:

"set JAVA_HOME=c:\Programs\Java " 

代替

"set JAVA_HOME=c:\Programs\Java"

并且logstash无法解决这个问题:)删除空间修复了问题。


2
2018-01-25 14:44





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

一步步:

  1. 找到要使用的Java JRE安装目录。例如: “C:\ Program Files \ Java \ jre7”
  2. 打开开始菜单右键单击计算机并选择设置。在右侧的系统设置窗口中,单击“扩展系统设置”。
  3. 在Tab扩展选择环境变量,添加您的 JAVA_HOME 变量到您的路径并点击确定。
  4. 通过输入“set”打开命令shell并检查环境,然后按Enter键。看看 JAVA_HOME 已设定。

如果你的 JAVA_HOME 现在正确设置,logstash应该工作。


1
2018-05-24 19:23



在Windows上,只需在批处理文件中使用SET即可使事情变得更加简单,而无需更改系统配置 - Петър Петров
关于重启命令提示符的好处!这解决了我的问题。 - Dimitar Tsonev