解決Elasticsearch因jdk版本問題啟動失敗的問題
Elasticsearch2.4版本,在Linux機(jī)器上啟動報如下錯誤:
Exception in thread "main" java.lang.RuntimeException: Java version: Oracle Corporation 1.7.0_45 [OpenJDK 64-Bit Server VM 24.45-b08] suffers from critical bug https://bugs.openjdk.java.net/browse/JDK-8024830 which can cause data corruption. Please upgrade the JVM, see http://www.elastic.co/guide/en/elasticsearch/reference/current/_installation.html for current recommendations. If you absolutely cannot upgrade, please add -XX:-UseSuperWord to the JAVA_OPTS environment variable. Upgrading is preferred, this workaround will result in degraded performance. at org.elasticsearch.bootstrap.JVMCheck.check(JVMCheck.java:123) at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:284) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:45) Refer to the log for complete error details.
看網(wǎng)上有說Linux自帶的OpenJDK和新裝的JDK可能會有沖突(跟Elasticsearch無關(guān)的文章),不知道和這個有沒有沒關(guān)系。
我的機(jī)器java -version如下,這算沖突嗎?我也不清楚。
java version "1.7.0_45" OpenJDK Runtime Environment (rhel-2.4.3.3.el6-x86_64 u45-b15) OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)
本來打算試一試刪掉OpenJDK安裝JDK7的,當(dāng)時上官網(wǎng)下載Linux版JDK7時發(fā)現(xiàn)竟然要下載三個多小時,下載這個不知道為什么這么慢。
等JDK7時,我看報錯信息里please add -XX:-UseSuperWord to the JAVA_OPTS environment variable讓我配置環(huán)境變量,那我配一下也無妨。
在終端上輸入
export JAVA_OPTS=$JAVA_OPTS-XX:-UseSuperWord
然后啟動Elasticsearch,成了。
上邊那句只在當(dāng)前用戶下生效,關(guān)閉終端或者退出用戶后,即使再次登錄,環(huán)境變量也失效了。機(jī)器不是我的,我沒有root權(quán)限改環(huán)境變量。
一不做二不休,我在Elasticsearch的啟動文件/bin/elasticsearch里加上這行,這樣每次啟動就沒問題了。
截圖如下
解決ElasticSearch找不到JDK問題
Could not find any executable java binary.Please install java in your PATH
背景:
本地啟動ElasticSearch服務(wù)提示找不到JDK或JRE,提示Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME.
但是本地已經(jīng)安裝了jdk,并且已經(jīng)配置了環(huán)境變量,但是為什么還是有問題,答案是不要把環(huán)境變量設(shè)置到bin目錄。
解決方案:
設(shè)置環(huán)境變量JAVA_HOME,但是注意不要設(shè)置到\bin這個級別的目錄
- JAVA_HOME:C:\Program Files (x86)\Java\jdk1.8.0_91\bin (錯誤)
- JAVA_HOME:C:\Program Files (x86)\Java\jdk1.8.0_91 (正確)
原因:
啟動文件中的elasticsearch文件中,會自動去找JAVA_HOME這個變量下的bin,如下圖,如果設(shè)置了JAVA_HOME這個變量到bin路徑,就會有重復(fù),導(dǎo)致ElasticSearch啟動找不到j(luò)dk變量。
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中的字符流FileReader與FileWriter詳解
這篇文章主要介紹了Java中的字符流FileReader與FileWriter詳解,在Java中,使用Unicode約定存儲字符,字符流自動允許我們逐字符讀/寫數(shù)據(jù),有助于執(zhí)行16位Unicode的輸入和輸出,它是以reader和writer結(jié)尾的,需要的朋友可以參考下2023-10-10Java?C++刷題leetcode1106解析布爾表達(dá)式
這篇文章主要為大家介紹了Java?C++刷題leetcode1106解析布爾表達(dá)式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01SpringDataJpa的使用之一對一、一對多、多對多?關(guān)系映射問題
這篇文章主要介紹了SpringDataJpa的使用?--?一對一、一對多、多對多關(guān)系映射,本文主要講述?@OneToOne、@OneToMany、@ManyToOne、@ManyToMany?這四個關(guān)系映射注解的使用,以及其對應(yīng)的級聯(lián)關(guān)系,需要的朋友可以參考下2022-07-07JavaWeb中Tomcat底層機(jī)制和Servlet運(yùn)行原理詳解
這篇文章主要介紹了JavaWeb中Tomcat底層機(jī)制和Servlet運(yùn)行原理詳解,Tomcat是一個開源的Java Web服務(wù)器,它是基于Java Servlet和JavaServer Pages(JSP)技術(shù)的,下面是關(guān)于Tomcat底層機(jī)制和Servlet運(yùn)行原理的簡要說明,需要的朋友可以參考下2023-10-10詳談jpa中表的@OneToMany等關(guān)聯(lián)關(guān)系
這篇文章主要介紹了詳談jpa中表的@OneToMany等關(guān)聯(lián)關(guān)系,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12