ElasticSearch 不同JDK版本兼容的问题

问题描述:

  由于我们使用的是ElasticSearch的最新版本(基于1.8的JDK)。而客户机器上的版本是1.7 的。客户的机器上已经有现有的项目在跑了,所以当然不能让他们去版本升级了。既然这样,我们的ElasticSearch服务没有办法运行,我们的项目也没有办法跑,也就没有办法结项啊。

 

解决方式描述:

  1.遇到问题自然找搜索引擎(百度),百度到一个好心博主的位置 http://blog.csdn.net/q979076061/article/details/72830664

  也就是修改这个文件的配置了

  就是上面那两个指定Java_Home的变量了。

  安装1.8的JDK后,新配置一个ES_JAVA_HOME的路径(不需要再配置Path的路径了)

  使用ES_JAVA_HOME替换掉上面的那两个变量。

  然后,保存,启动ES服务! 期待完美地解决ing……

  依然报了 “Elasticsearch requires at least Java 8 but your Java version from XXXX does not meet this requirement”

  黑人脸问号……我又没有接触过JAVA这怎么解决啊。。

  好了,是时候说一点调试技巧了。一般代码有文本提示的时候,都是会有相关目录的,只要找到具体的配置文件,就好解决了。上面的错误提示是在“elasticsearch.in.bat”这个文件下的。那么……在那个文件下依然会有一个叫 %JAVA_HOME%的相关配置。具体的修改方式就已经很明显了:把那个文件的JAVA_HOME 替换成我们新建的  ES_JAVA_HOME。

  然后保存,启动ES服务!完美~

  (JAVA程序果然配置高深。。)

 

 

后话:

  其实还有一种不完美的解决方式,就是写批处理。基于思路就是在写运行ElasticSearch前,修改JAVA_HOME的路径。然后再启动ES服务,但是这样子做很不稳定:

  1.需要开机启动

  2.如果服务意外中断,那么还需要人手动地去运行批处理,或者写程序监听服务运行状况。

  不过做为扩展思路,就把批处理的代码贴出来,聊以娱乐:

  

@echo off

cd D:\Project\elasticsearch-5.5.2\bin
D:
echo 修改ElasticSearch的JRE路径...
set JAVA_HOME=123
echo ElasticSearch的JRE路径修改成功...
echo %JAVA_HOME%
echo 启动ElasticSearch服务...
start elasticsearch-service-x64.exe
REM echo 按任意键退出...

pause;

 

感谢我的同事们给我提供思路和指导

 

posted on 2017-09-24 23:16  幸福的菜菜  阅读(27728)  评论(0编辑  收藏  举报

导航