You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Elasticsearch启动时指定使用Java 8而非默认Java 9?

如何让Elasticsearch单独使用Java 8(系统默认Java 9)

完全可以实现!不用修改系统全局的Java默认配置,直接给Elasticsearch单独指定Java 8的安装路径就行,下面是几种实用的实现方式:

方法一:修改Elasticsearch的环境配置脚本

这是最常用的持久化方法,修改后每次启动都会自动用Java 8:

  • 找到你的Elasticsearch安装目录,进入bin文件夹,打开elasticsearch-env脚本文件
  • 在脚本开头(或者原本处理JAVA_HOME变量的逻辑之前)添加一行:
    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    
    注意把路径替换成你自己机器上Java 8的实际安装路径
  • 保存文件后,重启Elasticsearch,它就会使用指定的Java 8运行了

方法二:临时启动时指定Java版本

如果只是临时测试,不想修改配置文件,可以直接在启动命令前指定环境变量:

JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ./bin/elasticsearch

同样替换成你的Java 8路径,执行这条命令启动的Elasticsearch就会用Java 8,不影响系统默认的Java 9

方法三:通过systemd服务配置指定(适用于用systemd管理的Elasticsearch)

如果你的Elasticsearch是作为systemd服务运行的,修改服务配置即可:

  • 找到Elasticsearch的systemd服务文件,一般路径是/etc/systemd/system/elasticsearch.service或者/lib/systemd/system/elasticsearch.service
  • 打开文件后,在[Service]段落中添加一行:
    Environment="JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64"
    
  • 保存后执行以下命令重新加载配置并重启服务:
    systemctl daemon-reload
    systemctl restart elasticsearch
    

验证是否生效

启动Elasticsearch后,你可以通过以下方式确认它用的是Java 8:

  • 查看Elasticsearch的日志文件(一般在logs目录下),里面会输出JVM版本信息
  • 调用Elasticsearch的节点信息API:curl http://localhost:9200/_nodes/jvm,返回的结果里能看到JVM的版本号

内容的提问来源于stack exchange,提问作者deadcode

火山引擎 最新活动