如何使用多个 JAVA JDK 启动 Elasticsearch 服务
How to start Elasticsearch service with multiple JAVA JDKs
在我们的服务器上,我们使用了多个 Java JDK。我无法更改它,因为我们有旧 Java 版本的依赖项。
因此我无法启动当前的 elasticsearch 版本 (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 使用新版本而不是旧版本?
转到用于启动 elasticsearch 的 elasticsearch bash 脚本。
如果您使用 RPM 安装,它位于:
/usr/share/elasticsearch/bin/elasticsearch
然后搜索函数launch_service()
在函数的第一行添加以下行:
JAVA=/usr/java/jdk1.8.0_25/bin/java
然后:
service elasticsearch restart
它将选择您在添加的行中设置的 java 版本。
更新 sysconfig
是更好的方法,因此任何脚本都不会选择另一个 JDK。
就我而言,当我在 /etc/sysconfig/elasticsearch
中更新 elasticsearch 配置时它起作用了
这与 https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html
中的建议差不多
在我们的服务器上,我们使用了多个 Java JDK。我无法更改它,因为我们有旧 Java 版本的依赖项。 因此我无法启动当前的 elasticsearch 版本 (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 使用新版本而不是旧版本?
转到用于启动 elasticsearch 的 elasticsearch bash 脚本。
如果您使用 RPM 安装,它位于:
/usr/share/elasticsearch/bin/elasticsearch
然后搜索函数launch_service() 在函数的第一行添加以下行:
JAVA=/usr/java/jdk1.8.0_25/bin/java
然后:
service elasticsearch restart
它将选择您在添加的行中设置的 java 版本。
更新 sysconfig
是更好的方法,因此任何脚本都不会选择另一个 JDK。
就我而言,当我在 /etc/sysconfig/elasticsearch
中更新 elasticsearch 配置时它起作用了
这与 https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html