我已经从 Neo 站点下载了 Neo4J enterprise 并将其解压到/opt 下
我已从 Oracle 网站成功下载并安装了 Java 7 Server 版本。请注意,在指示我需要服务器 JRE 后,Oracle 下载此:jdk1.7.0_51
我已经在/opt 下解压了/opt/neo4j-2.0.0 和/opt/jdk1.7.0_51
我已经使用 Centos Linux 在 AWS 上成功安装了 Neo4J 2.O,因此它应该作为服务在服务帐户下运行。为此,我使用了 Neo 安装命令。命令运行成功
我可以像我自己一样成功启动 Neo4J。编辑我的 ~/.bash_profile 来定义 JAVA_HOME 并导出后。
export JAVA_HOME="/opt/jdk1.7.0_51/"
export NEO4J_HOME="/opt/neo4j-2.0.0"
export PATH=$JAVA_HOME/bin:$NEO4J_HOME:$PATH
申请 源~/.bash_profile
cd /$NEO$J_HOME
bin/neo4j start
工作得很好。
但是,我们无法成功让 Neo 作为服务启动
sudo service neo4j-service start
which: no java in (/sbin:/usr/sbin:/bin:/usr/bin)
ERROR: Unable to find java. (Cannot execute )
* Please use Oracle(R) Java(TM) 7 to run Neo4j Server. Download "Java Platform (JDK) 7" from:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
* Please see http://docs.neo4j.org/ for Neo4j Server installation instructions.
如果我回显 $JAVA_HOME 它会按预期返回 如果我 echo $PATH 它会按预期返回
正如预期的那样,我们可以在路径上看到 java。
如果我在运行 sudo service neo4j-service start 之前简单地输入 java -version 响应显示 java 版本。
一点背景知识:除非我首先按照我们的正常 IT 策略运行特殊脚本,否则 Linux 服务命令不可用。但是,该脚本破坏了我原本会使用的导出。
相应的命令 服务neo4j-服务启动
返回 -bash:neo4j-service:找不到命令
表示找不到“service”命令
所以我们的环境中需要sudo来执行服务命令
我们尝试过将 jdk1.7.0_51 简单地放置在/sbin/jdk1.7.0_51 下,但这不起作用。我们还尝试从jdk1.7.0_51中提取jre文件夹并将其放在/sbin/jre下
还尝试在/etc/profile.d/下创建java.sh文件
仍然没有成功。
所以这个简单的问题......
Neo4J 2.0.0 作为服务运行时在哪里寻找 Java?它是使用环境变量 JAVA_HOME,还是在 Neo4J 服务器错误消息似乎指示的以下位置之一进行查找? “(/sbin:/usr/sbin:/bin:/usr/bin) 中没有 java”
根据我的安装配置,neo4j 服务旨在在 Neo4jservice 帐户下运行。这是否像确保 JAVA_HOME 可用于 neo4jservice 账户一样简单?为什么会出现错误消息“no java in (/sbin:/usr/sbin:/bin:/usr/bin)”?
提前致谢
最佳答案
我在我的 Solaris 和 Linux Mint 安装上进行了测试,这似乎对我有用 也许它并不优雅,但它会让你继续前进。只需删除启动脚本的 sudo 部分即可。
sudo NEO4J_HOME="/opt/neo4j" JAVA_HOME="/usr/java" /opt/neo4j/bin/neo4j start
显然,根据你的情况修改环境变量:
JAVA_HOME="/opt/jdk1.7.0_51/" NEO4J_HOME="/opt/neo4j-2.0.0" service neo4j-service start
关于java - Neo4J 服务器安装 Linux AWS Centos 操作系统 -- 服务用户找不到 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22130797/