如何使用多个JAVA JDK启动Elasticsearch服务

时间:2015-06-02 13:21:57

标签: java linux service elasticsearch daemon

在我们的服务器上,我们使用多个Java JDK。我无法改变这种情况,因为我们对较旧的Java版本具有依赖性。 因此,我无法启动当前的弹性搜索版本(1.5.2),因为它需要JDK> 1.7.0_55,虽然我们安装了其他版本,包括1.7.0_79。 旧版本的可执行文件存储在/ bin下,而较新版本的可执行文件安装在/usr/jdk1.x.x_xx/bin中。 我还没有在/etc/elasticsearch/elasticsearch.yml中找到任何选项来设置java可执行文件的路径。 我还尝试将环境变量$ PATH和$ JAVA_HOME设置为较新版本,但没有任何运气。 有没有办法强制elasticsearch使用更新版本而不是旧版本?

2 个答案:

答案 0 :(得分:3)

转到用于启动elasticsearch的elasticsearch bash脚本。

如果您安装了RPM,则位于:

/usr/share/elasticsearch/bin/elasticsearch

然后搜索函数launch_service() 在该函数的第一行添加以下行:

JAVA=/usr/java/jdk1.8.0_25/bin/java

然后:

service elasticsearch restart

它将获取您在添加的行中设置的java版本。

答案 1 :(得分:0)

更新sysconfig是更好的方法,因此任何脚本都不会选择其他JDK。 就我而言,当我在/etc/sysconfig/elasticsearch中更新elasticsearch配置时,它起作用了 这与https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html

中的建议差不多