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;

 

感謝我的同事們給我提供思路和指導

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM