尽管设置了JAVA_HOME,但 JAVA 不在路径中

我已经在/etc/profile中设置了所有需求变量,但是当启动elasticsearch时,它仍然没有找到Java。我如何设置环境变量。这是我的 /etc/个人资料

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]

在错误中,它说“”开始弹性搜索:其中:没有java在(/sbin:/usr/sbin:/bin:/usr/bin)“”,这意味着真的java不在那个路径中,但是当我回显$PATH时,它表明java在路径中?


答案 1

在阅读了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

然后运行后,一切都有效,我不再有Java路径问题。sudo service elasticsearch start


答案 2

运行命令

java -XshowSettings

搜索条目java.home = /usr/java/jdk1.8.0_91/jre

导出 bash 配置文件中的java_home

export JAVA_HOME=/usr/java/jdk1.8.0_91/jre

或 in 以扩展到所有用户/etc/profile


推荐