在弹性搜索中使用service install命令“JAVA_HOME指向无效的Java安装问题”

我想在我的PHP应用程序中使用弹性搜索。

运行service install命令后 ,我得到了错误。

C:\elasticsearch-0.90.10\bin>service install JAVA_HOME points to an invalid Java installation (no java.exe found in "C:\Progr am Files (x86)\Java\jdk1.7.0_25\bin"). Existing... 

打开并查看service.bat文件:

它搜索:

 %JAVA_HOME%\bin\java.exe 

因此你的%JAVA_HOME%不应该包含bin

如果您没有设置环境变量的权限,则解决方法:

打开service.bat文件,

a) 删除该行:

 if NOT DEFINED JAVA_HOME goto err 

b)用你的java jdk路径替换 %JAVA_HOME% ,例如: C:\Program Files\Java\jdk1.7.0_51

注意 :这只是一种始终有效的解决方法。

从您的错误消息我们可以看到您的JAVA_HOME指向

 C:\Program Files (x86)\Java\jdk1.7.0_25\bin 

虽然它应该指向

 C:\Program Files (x86)\Java\jdk1.7.0_25 

我认为错误信息是相当描述性的,你应该看看这个文件夹是java.exe吗? 如果没有,那么您的JAVA_HOME环境变量指向正确的安装

下面是一个显示如何操作的页面https://confluence.atlassian.com/display/DOC/Setting+the+JAVA_HOME+Variable+in+Windows

第一次点击谷歌。

JAVA_HOME指向错误的位置,或者您没有安装Java。 检查并查看是否在指定的位置安装了Java。

另请注意,JAVA_HOME变量应指向Java安装的根目录而不是/ bin文件夹。 这是由您正在执行的程序添加的。

要更改JAVA_HOME变量以进一步测试,请在命令提示符中使用以下命令:

 set JAVA_HOME=c:\xxxx 

一旦确定了要使用的正确值,就可以在控制面板>>系统>>高级系统设置>>高级>>环境变量中永久更改

设置JAVA_HOME = C:\ Program Files(x86)\ Java

以上必须解决问题,我在安装弹性搜索时遇到了同样的问题。 我尝试给路径的“bin”部分,但它不起作用,所以我只是给路径中的顶级文件夹“java”,它工作。

只是为了增加我自己的经验。 我正在使用标签自动完成设置JAVA_HOME。 它最终会出现类似“C:\ Program files …:”的内容,并且无法说它无法找到java程序。 我解决了在set命令中键入JAVA_HOME路径而不使用制表符完成的问题。 问题可能与“在env变量中有关