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;
感谢我的同事们给我提供思路和指导