发表于2013年8月的文章

Neo4j Server启动失败

发表于2013年8月31日

最近需要用到Neo4j做个小试验,看似顺利安装却在启动server的时候报错。最终发现问题是JDK1.7安装时,少修改了一个symlink。

我的安装步骤如下:

从Oracle下载了JDK1.7,在~/.bashrc里修改了JAVA_HOME变量。

export JAVA_HOME=/usr/libexec/java_home -v 1.7

检查了一下当前jdk版本。

> source ~/.bashrc
> java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

看起来没什么问题,但实际上并没有完成。在/System/Library/Frameworks/JavaVM.framework/Versions 下有一个 CurrentJDK 的symlink,仍然指向JDK 1.6的路径。

如果没有修改symlink,则neo4j启动时报错。

> neo4j start
Using additional JVM arguments:  -server -XX:+DisableExplicitGC -Dorg.neo4j.server.properties=conf/neo4j-server.properties 
-Djava.util.logging.config.file=conf/logging.properties -Dlog4j.configuration=file:conf/log4j.properties 
-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -Dneo4j.ext.udc.source=homebrew
Starting Neo4j Server...WARNING: not changing user
process [29976]... waiting for server to be ready.... Failed to start within 120 seconds.
Neo4j Server may have failed to start, please check the logs.

需要执行一下命令:

> cd /System/Library/Frameworks/JavaVM.framework/Versions
> sudo rm CurrentJDK
> sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/ CurrentJDK
> ls -l CurrentJDK
lrwxr-xr-x  1 root  wheel  59 Aug 31 01:58 CurrentJDK -> /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/

这时

> neo4j start
Using additional JVM arguments:  -server -XX:+DisableExplicitGC -Dorg.neo4j.server.properties=conf/neo4j-server.properties 
-Djava.util.logging.config.file=conf/logging.properties -Dlog4j.configuration=file:conf/log4j.properties 
-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -Dneo4j.ext.udc.source=homebrew
Starting Neo4j Server...WARNING: not changing user
process [33636]... waiting for server to be ready....... OK.
Go to http://localhost:7474/webadmin/ for administration interface.

Neo4j Server顺利启动。网上看到有不少人报类似的错,但原因不全是JDK路径问题造成。

参考: