/ etc/profileですべての要件変数を設定しましたが、elasticsearchを起動すると、まだJavaが見つかりません。環境変数を設定する方法。それが私の/ etc/profileです
PATH=$PATH:$HOME/bin
APPLICATIONS=$HOME/Applications
Java_HOME=$APPLICATIONS/jdk1.7.0_79
PATH=$Java_HOME/bin:$PATH
export APPLICATIONS
export Java_HOME
export PATH
コマンドの出力
[root@87500e63467f Applications]# echo $PATH
/root/Applications/jdk1.7.0_79/bin:/root/Applications/jdk1.7.0_79/bin:/root/Applications/jdk1.7.0_79/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/bin:/root/bin
[root@87500e63467f Applications]# echo $Java_HOME
/root/Applications/jdk1.7.0_79
[root@87500e63467f Applications]# Java -version
Java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
error: "Read-only file system" setting key "vm.max_map_count"
Starting elasticsearch: which: no Java in (/sbin:/usr/sbin:/bin:/usr/bin)
Could not find any executable Java binary. Please install Java in your PATH or set Java_HOME
[FAILED]
エラーでは、 "" Starting elasticsearch:which:no Java in(/ sbin:/ usr/sbin:/ bin:/ usr/bin) ""、本当に= Javaはそのパスにありませんが、$ PATHをエコーするとどうなりますか。Javaがパスにありますか?
特にOpenBSD6.0の場合、追加します
export Java_HOME=/usr/local/jdk-1.8.0/
あなたの.profile
。
この特定バージョンのjdk、および場合によっては基本パス自体は、OpenBSDの後続および以前のバージョンで変更される可能性があるため、警告されています。
ElasticSearchのドキュメントを読んだ後、UbuntuまたはDebianで実行している場合、ライセンスの問題のため、パッケージはOpenJDKにのみ同梱されることがわかりました。これを修正するためにJavaパスの問題、ElasticSearchをインストールした後に(ドキュメントの指示に従って)以下をインストールしました:
Sudo add-apt-repository ppa:webupd8team/Java
Sudo apt-get update
Sudo apt-get install Oracle-Java8-installer
Java -version
その後、Sudo service elasticsearch start
すべてが機能し、これ以上Javaパスの問題はありませんでした。
コマンドを実行する
Java -XshowSettings
エントリを検索Java.home = /usr/Java/jdk1.8.0_91/jre
bashプロファイルでJava_homeをエクスポートします
export Java_HOME=/usr/Java/jdk1.8.0_91/jre
または/etc/profile
すべてのユーザーに展開する
うまくいくには-ニースではありませんが、/ usr/binにJava(これはElasticsearchで表示される)にシンボリックリンクを設定できます):
ln -s /root/Applications/jdk1.7.0_79/bin/Java /usr/bin/Java
出力に/ etc/sysconfig/elasticsearchというファイルが1つあることに気付きました
これでうまくいくかもしれないので、このファイルでJava_HOMEを次のように定義しました。
もっとuは here から取得できます
/etc/
ディレクトリの下のbashrc
およびprofile
ファイルに以下のパスを追加するだけです。
export Java_HOME =/path/to/Java/jdk
export PATH = $ Java_HOME/bin:$ PATH
Elasticsearch 5をdebianマシンにインストールしているときに同じ問題が発生しました。それが私がJava 9をインストールした方法です:
su -
echo "deb http://ppa.launchpad.net/webupd8team/Java/ubuntu xenial main" | tee /etc/apt/sources.list.d/webupd8team-Java.list
echo "deb-src http://ppa.launchpad.net/webupd8team/Java/ubuntu xenial main" | tee -a /etc/apt/sources.list.d/webupd8team-Java.list
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
apt-get update
apt-get install Oracle-Java9-installer
これがあなたの特定の状況かどうかはわかりませんが、ElasticSearch/Kibana/Logstash(ELKスタック)を使用した場合、Ubuntu 16.04ではドキュメントが機能しませんでした。この投稿のコンテンツを他のいくつかのコンテンツと組み合わせて、私の解決策は次のとおりでした。
Sudo add-apt-repository ppa:webupd8team/Java
Sudo apt-get update
Sudo apt-get install Oracle-Java8-installer
# checking my work given 9 won't work with OSSEC you can use
# Java -version
Sudo usermod -a -G ossec logstash
Sudo apt-get install logstash
Sudo systemctl daemon-reload
Sudo systemctl enable logstash.service
Sudo systemctl start logstash.service
Ubuntu 16.04での私にとっての最終結果は
Sudo Java -version
Java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
Wazuhを使用している場合、特定のバージョンのPPAを追加することが重要です。これがお役に立てば幸いです。
/ etc/default/elasticsearchにJava_HOMEを設定する必要があります。cat /etc/default/elasticsearch Java_HOME=/var/local/jdk1.8.0_151
次の開始/etc/init.d/elasticsearch start
ES実行中。私のOS ubuntu18.04。
「インストールされていない」Javaを使用している場合は、「elasticsearch」ユーザーが、Java_HOMEディレクトリとすべての親ディレクトリで定義されたものにアクセスできるかどうかを確認します。それが私の問題でした。
Java_HOMEに指定したパスが正しいことを確認してください。
そして、なぜそれを単純にしないのですか:
export PATH=$PATH:/path/to/jdk
Java homeを/jdk1.7.0_79/binに設定し、それが役立つかどうかを確認してください。