Ubuntu neo4j start导致错误:JAVA_HOME的定义不正确

Ubuntu neo4j start导致错误:JAVA_HOME的定义不正确,ubuntu,neo4j,Ubuntu,Neo4j,我试图使用以下命令在Ubuntu机器上运行neo4j服务器: sudo neo4j start 但它给了我一个错误: ERROR: JAVA_HOME is incorrectly defined as /usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/ (the executable /usr/lib/jvm/java-1.7.0-openjdk-amd64/bin//bin/java does not exist) 现在,我已将JAVA\u HOME设置

我试图使用以下命令在Ubuntu机器上运行neo4j服务器:

sudo neo4j start
但它给了我一个错误:

ERROR: JAVA_HOME is incorrectly defined as /usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/ (the executable /usr/lib/jvm/java-1.7.0-openjdk-amd64/bin//bin/java does not exist)
现在,我已将
JAVA\u HOME
设置到安装JAVA的正确目录。下面是我运行echo$JAVA\u HOME时得到的结果:

/usr/lib/jvm/java-8-oracle

我不知道它从哪里得到
JAVA\u HOME
的值。我检查了配置文件,但找不到任何引用
JAVA\u HOME
的变量,我可能需要设置这些变量。

7也有同样的问题,您可以这样解决:

JAVA_HOME
应设置为包含包含JAVA可执行文件(特别是JAVA本身)的bin目录的目录名

假设您确实有一个
/usr/lib/jvm/jdk1.7.0
目录,它可能包含一个
jre
子目录,其中包含
bin
目录,该目录包含java和相关可执行文件

因此,您可能应该将
JAVA_HOME
设置为
/usr/lib/jvm/jdk1.7.0/jre
,而不是
/usr/lib/jvm/jdk1.7.0


有关详细信息。

某些发行版默认情况下会重置环境变量,以确保在根目录下执行的程序按预期运行。()

因此,在使用
sudo
时保留环境变量:

sudo -E neo4j start
可能的副本:。注意被接受的答案下面关于ubuntu的评论。