【问题标题】:ElasticSearch and Java environment variableElasticSearch 和 Java 环境变量
【发布时间】:2014-10-24 03:36:15
【问题描述】:

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

当我下载并解压 elasticsearch 并运行 /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 版本。我应该删除那个变量吗?

【问题讨论】:

  • 我将尝试卸载并重新安装 JRE 而不是 JDK。
  • 如果您的意思是在类路径中设置了 32 位 java 的路径,则只能从类路径中删除该部分。

标签: java elasticsearch environment-variables


【解决方案1】:

如果elasticsearch版本为7.5或更高,找到elasticsearch-7.XY\bin目录,然后编辑elasticsearch-env.bat如下: p>

   if defined JAVA_HOME (
  set JAVA="%WRITE_ELASTICSEARCH_JAVA_PATH%\bin\java.exe" //write java custom path. Edit only this line
  set JAVA_TYPE=JAVA_HOME
) else (
  set JAVA="%ES_HOME%\jdk\bin\java.exe"
  set JAVA_HOME="%ES_HOME%\jdk"
  set JAVA_TYPE=bundled jdk
)

你可以像 elasticsearch 那样自定义 java 路径。

【讨论】:

  • 谢谢!如果 java_home 已经设置,这是正确的答案。
【解决方案2】:

我收到此错误是因为我使用的是Powershell,但它没有看到environment variable。 (我不知道方法) 然后我使用了CMD,它运行成功了。

【讨论】:

    【解决方案3】:

    看,你只需要做下面的事情:(不要删除任何已经设置的环境变量)

    • 第 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 安装
    • 第 5 步:就是这样,现在只需从 cmd 运行 elasticsearch-service 并 它会运行。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        这是很常见的错误,没有设置 JAVA_HOME 环境。因此,我们需要将其设置在更突出的基础上。它要求 jre 目录的路径而不是 bin 目录的路径,即配置和运行 elasticsearch 的 java 环境路径。因此,请确保您没有在路径中指定 bin 目录。然后,您可以运行您的 elasticsearch,它会在默认端口 9200 上启动并运行。

        【讨论】:

        • 很好的解释!一个例子会很好@mohan08p
        【解决方案6】:

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

        谢谢

        【讨论】:

        • 我还必须对 elasticsearch.bat 进行此更改。然后我让它运行起来。
        【解决方案7】:

        运行以下命令:

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

        【讨论】:

          【解决方案8】:

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

          打开 elasticsearch.bat 文件,

          a) 删除该行:

          if NOT DEFINED JAVA_HOME goto err
          

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

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

          https://cygwin.com/install.html

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

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

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

          "JAVA_HOME points to an invalid Java installation issue" with service install command in elastic search

          【讨论】:

            【解决方案9】:

            步骤 1

            您能否验证JAVA_HOME 设置为C:\Progra~1\Java\jdk1.8.0_20

            C:\>echo %JAVA_HOME%
            

            另外,验证java 命令是否可用,

             java -version
            

            参考

            Check if JAVA_HOME is present in environment using batch script

            第 2 步

            如果未设置JAVA_HOME,请按照此处提供的步骤 - How to Set Java Home in windows

            Summary,

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

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

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

            【讨论】:

            • 这意味着你的 JAVA_HOME 没有设置。
            • echo %JAVA_HOME% 只是给了我确切的字符串%JAVA_HOME%。但是java-version 会打印出我的 java 版本。
            • @gwho 请按照我的回答中提供的 STEP 2 链接进行操作。希望有帮助
            • @gwho 您的JAVA_HOME 仍未设置。我不确定,但为什么set JAVA_HOME = C:\Program Files\Java\jre1.8.0_20 中的= 前后有空格。尝试删除它。
            • 也许吧。一旦您执行echo %PATH%echo $Env:PATH,您是否会在列表中看到jdk。如果不给它重新启动。
            【解决方案10】:

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

            完成此操作后,打开一个新的 cmd 窗口(开始菜单,键入“cmd”并按回车键)并验证 JAVA_HOME 的设置与上述问题相同。

            【讨论】:

            • 我实际上是按照 OP 中链接的说明执行此操作的。我按照 Prayad Upd 的建议进行了测试,但没有通过他的测试
            猜你喜欢
            • 1970-01-01
            • 2015-09-12
            • 2016-08-11
            • 2015-08-14
            • 2011-06-18
            • 2019-12-17
            • 2011-10-26
            • 2010-12-12
            相关资源
            最近更新 更多