問題描述:
由於我們使用的是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;
感謝我的同事們給我提供思路和指導