我已经在/ 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]
在错误中,它表示""启动elasticsearch:其中:没有java in(/ sbin:/ usr / sbin:/ bin:/ usr / bin)"&#34 ;,这意味着java在该路径中并不是真的,但是当我回显$ PATH时,它表明java在路径中?
答案 0 :(得分:34)
在阅读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路径问题。
答案 1 :(得分:9)
运行命令
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
中展开给所有用户
答案 2 :(得分:5)
特别是对于OpenBSD6.0,添加
export JAVA_HOME=/usr/local/jdk-1.8.0/
到.profile
。
这个特定版本的jdk,以及可能的基本路径本身在OpenBSD的后续版本和以前版本中都会发生变化,您已收到警告。
答案 3 :(得分:1)
要实现它 - 虽然不是很好 - 你可以在/ usr / bin中设置一个指向java的符号链接(由elasticsearch列出可以看到):
ln -s /root/Applications/jdk1.7.0_79/bin/java /usr/bin/java
答案 4 :(得分:1)
我注意到输出中有一个名为/ etc / sysconfig / elasticsearch
的文件这可能会有所帮助,所以我在这个文件中定义了JAVA_HOME,并且它可以工作。
你可以从here获得更多
答案 5 :(得分:0)
确保您为JAVA_HOME提供的路径正确无误。
为什么不保持简单:
export PATH=$PATH:/path/to/jdk
尝试将Java home设置为/jdk1.7.0_79/bin,看看是否有帮助。
答案 6 :(得分:0)
只需在bashrc
目录下的profile
和/etc/
文件中添加以下路径。
导出JAVA_HOME = / path / to / java / jdk
export PATH = $ JAVA_HOME / bin:$ PATH
答案 7 :(得分:0)
在debian机器上安装Elasticsearch 5时遇到同样的问题。这就是我安装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
答案 8 :(得分:0)
我不知道这是否是您的特殊情况,但是使用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。我希望这会有所帮助。
答案 9 :(得分:0)
您需要在/ etc / default / elasticsearch中设置JAVA_HOME,例如
cat /etc/default/elasticsearch
JAVA_HOME=/var/local/jdk1.8.0_151
下一次开始
/etc/init.d/elasticsearch start
ES正在运行。
我的操作系统ubuntu18.04。
答案 10 :(得分:0)
如果您使用的是“未安装”的Java,请检查“ elasticsearch”用户是否有权访问您的JAVA_HOME目录和所有父目录所定义的目录。那是我的问题。