安装ElasticSearch使用自带JDK

本文介绍如何解决Elasticsearch7以上版本因自带JDK而导致的启动问题,包括修改配置文件以使用自带JDK,及调整JVM选项以适应新版本需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

平时用jdk8,但运行es7无法启动。在elasticsearch7以上的版本中会自带jdk.
需要修改elasticsearch-env配置文件,就可以使用自带jdk版本,不影响其他java项目。

future versions of Elasticsearch will require Java 11; your Java version from [d:\Program Files\java\jdk1.8.0_91\jre] does not meet this requirement

linux

 39 if [ ! -z "$JAVA_HOME" ]; then
 40   JAVA="$JAVA_HOME/bin/java"
 41   JAVA_TYPE="JAVA_HOME"
 42 else
 43   if [ "$(uname -s)" = "Darwin" ]; then
 44     # macOS has a different structure
 45     JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
 46   else
 47     JAVA="$ES_HOME/jdk/bin/java"
 48   fi
 49   JAVA_TYPE="bundled jdk"
 50 fi

修改成

  if [ "$(uname -s)" = "Darwin" ]; then
    # macOS has a different structure
    JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
  else
    JAVA="$ES_HOME/jdk/bin/java"
  fi
  JAVA_TYPE="bundled jdk"

windows
打开 elasticsearch-env.bat文件:

if defined JAVA_HOME (
  set JAVA="%JAVA_HOME%\bin\java.exe"
) else (
  set JAVA="%ES_HOME%\jdk\bin\java.exe"
  set JAVA_HOME="%ES_HOME%\jdk"
)

修改成

set JAVA="%ES_HOME%\jdk\bin\java.exe" 
set JAVA_HOME="%ES_HOME%\jdk" 

然后就可以启动了。最后又出现如下问题

OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.

打开jvm.options
修改 (大概在35行)

8-13:-XX:+UseConcMarkSweepGC
8-13:-XX:CMSInitiatingOccupancyFraction=75
8-13:-XX:+UseCMSInitiatingOccupancyOnly

改成

8-13:-XX:+UseG1GC
8-13:-XX:CMSInitiatingOccupancyFraction=75
8-13:-XX:+UseCMSInitiatingOccupancyOnly

最后可以启动了。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值