在OS X上使用Java 7和neo4j
在系统首选项中将Java升级到7u45之后,Neo4j仍然警告我使用了错误的版本:
WARNING! You are using an unsupported Java runtime. Please use Oracle(R) Java(TM) Runtime Environment 7.
我想使用neo4j v2,它不支持Java 6,所以我需要解决这个问题。
我启动了neo4j 1.9.4服务器,并运行了neo4j info
。 输出包括这一行:
JAVA_HOME: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
显然,我需要设置JAVA_HOME。 怎么设置它? /usr/libexec/java_home
返回同一目录。 JavaVirtualMachines目录不包含任何其他子文件夹。 所以我尝试探索java控制面板(从系统首选项访问)。 在“Java”选项卡下,单击“View”,并给出7u45的路径:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
所以我尝试了这个,猜测Contents/Home
目录是同构的:
$ export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home $ neo4j start WARNING! You are using an unsupported Java runtime. Please use Oracle(R) Java(TM) Runtime Environment 7. 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 [34808]... waiting for server to be ready. Failed to start within 120 seconds. Neo4j Server may have failed to start, please check the logs.
那不好。
我搜索并发现了这篇文章 ,并根据Lasse的建议编辑了/usr/local/Cellar/neo4j/1.9.4/libexec/bin/utils
。 我添加了两行:
# check if running Oracle JDK 7, warn if not checkjvmcompatibility() { + echo $JAVACMD + $JAVACMD -version $JAVACMD -version 2>&1 | egrep -q "Java HotSpot\\(TM\\) (64-Bit Server|Server|C lient) VM" if [ $? -eq 1 ] then echo "WARNING! You are using an unsupported Java runtime. Please use Oracle(R) Java(TM) Runtime Environment 7." else $JAVACMD -version 2>&1 | egrep -q "java version \"1.7" if [ $? -eq 1 ] then echo "WARNING! You are using an unsupported version of the Java runtime. Please use Oracle(R) Java(TM) Runtime Environment 7." fi fi }
并再次尝试:
$ neo4j start /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java bin/utils: line 349: /Library/Internet: No such file or directory WARNING! You are using an unsupported Java runtime. Please use Oracle(R) Java(TM) Runtime Environment 7.
看起来路径中的空间令人困惑。 我试图逃避它,但我的第一种方法失败了:
$ export JAVA_HOME="'/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home'" $ neo4j start Error: JAVA_HOME is not defined correctly. We cannot execute '/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home'/bin/java
然后我决定简单(不一定很好)的解决方案只是制作一个符号链接:
$ cd /Library/ $ sudo ln -s Internet\ Plug-Ins/ Internet-Plug-Ins $ export JAVA_HOME=/Library/Internet-Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
此时neo4j start
正常运行; 我设法升级到v2.0.0-M6,它仍然有效。
您必须在Max OS上安装java JDK 1.7.x然后再安装
运行此命令以查看最新的Java JDK在哪里。
$ / usr / libexec / java_home -V
1.7.0_45, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home 1.6.0_65-b14-462, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 1.6.0_65-b14-462, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
这个案例我的最新版本是1.7.0_45
$ export JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.7.0_45.jdk / Contents / Home
$ bin / neo4j开始
这个对我有用。