ElasticSearch和Java环境变量

对于Windows 7,我已经在32位和64位版本中安装了JDK。 版本为8,所有四个安装的更新20。 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

当我下载并解压弹性搜索,并运行/bin/service.bat或/bin/elasticsearch.bat文件时,我进入我的终端:

JAVA_HOME environment variable must be set! Press any key to continue . . .

当我这样做时,终端关闭。

我已经卸载并重新安装,但是没有解决它。 为什么环境变量不会被设置? 它是安装的东西,还是我实际上必须手动设置变量。 它似乎如果安装正确,它会自动设置变量…请帮助。 谢谢

我使用它手动设置JAVA_HOME环境变量。

https://confluence.atlassian.com/display/DOC/Setting+the+JAVA_HOME+Variable+in+Windows

我的路径是C:\Progra~1\Java\jdk1.8.0_20\jre

现在,当我运行service.bat时,终端在打开时立即关闭。 当我运行elasticsearch.bat时,终端会打印一些行,过了一会儿,它就会停留在那里,我无法输入任何内容。


编辑:

我卸载了所有java,只重新安装了JRE 64位,并将系统环境变量设置为JAVA_HOME和`C:\ Progra~1 \ Java \ jre1.8.0_20

我发现有一个CLASSPATH被设置为一个32位,更旧的java版本。 我应该删除该变量吗?

步骤1

你能否validationJAVA_HOME设置为C:\Progra~1\Java\jdk1.8.0_20

 C:\>echo %JAVA_HOME% 

另外,validationjava命令是否可用,

  java -version 

参考

使用批处理脚本检查环境中是否存在JAVA_HOME

第2步

如果未设置JAVA_HOME ,请按照此处提供的步骤 – 如何在Windows中设置Java Home

总结 ,

  • 右键单击桌面上的“ 我的电脑”图标 ,然后选择“属性”。
  • 单击“高级”选项卡。 单击“ 环境变量”按钮。 在“系统变量”下,单击“ 新建”
  • 输入变量名称JAVA_HOME。
  • 输入变量值作为JDK的安装路径。

    (例如, C:\Progra~1\Java\jdk1.8.0_20 )。

  • 单击确定。
  • 单击应用更改。

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

打开elasticsearch.bat文件,

a)删除该行:

 if NOT DEFINED JAVA_HOME goto err 

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

并且对于您的终端开始并且您无法键入任何内容,它是elasticsearch服务器,您需要使用像cygwin这样的客户端连接到它。

https://cygwin.com/install.html

要连接到服务器,请参阅elasticsearch文档。

http://www.elasticsearch.org/guide/

一个类似的问题已经得到回答:

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

运行以下命令:

 set JAVA_HOME=C:\Program Files\Java\jre8 

我遇到了类似的问题,其中Java home已经设置但仍然是抛出错误。 如果你已经设置了java home,打开elasticsearch-plugin.bat文件并将“IF DEFINED JAVA_HOME”更改为“IF DEFINED%JAVA_HOME%”。

谢谢

您可以通过单击“开始”,指向“计算机”,右键单击并选择属性来设置系统范围的环境变量。 接下来,单击“高级系统设置”,点击“高级”选项卡,然后选择“环境变量”按钮。 这会打开一个窗口,您可以在其中设置JAVA_HOM E变量。 您可以为当前用户(顶部框)或系统范围执行此操作。

环境变量对话框

执行此操作后,打开一个新的cmd窗口(“开始”菜单,键入“ cmd ”并按Enter键)并validationJAVA_HOME的设置方式与上述问题类似。

这是很常见的错误,JAVA_HOME环境没有设置。 因此,我们需要在更加突出的基础上进行设置。 它要求jre目录的路径而不是bin目录,即用于配置和运行elasticsearch的java环境路径。 因此,请确保未在路径中指定bin目录。 然后,你很高兴去运行你的弹性搜索,它将在默认端口9200启动并运行。

在设置%JAVA_HOME%环境变量后,我仍然无法运行它。 对我来说问题是我应该以管理员身份运行elasticsearch.bat文件 。 这解决了这个问题。

请参阅,您只需要执行以下操作:(不要删除已设置的任何环境变量)

  • 第1步:编辑位于\ bin中的elasticsearch-service.bat
  • 第2步:在开头添加以下行(在@echo下面)SET JAVA_HOME = C:\ Program Files \ Java \ jdk1.8.0_162(或您的Java路径)
  • 第3步:在同一个文件中找到%% JAVA_HOME %%并将其替换为%JAVA_HOME%
  • 第4步:然后从bin文件夹中的cmd运行:elasticsearch-service.bat install
  • 第5步:就是这样,只需从cmd运行elasticsearch-service即可运行。