2013-10-31 4 views
6

Nach Java Upgrade in den Systemeinstellungen 7u45 wurde Neo4j mir Warnung noch über die falsche Version verwenden:Verwendung von Java 7 mit Neo4j auf OS X

WARNING! You are using an unsupported Java runtime. Please use Oracle(R) Java(TM) Runtime Environment 7. 

I Neo4j v2 verwenden möchten, die nicht unterstützt Java 6, also musste ich das beheben.

Antwort

9

Ich startete einen Server neo4j 1.9.4 und lief neo4j info. Die Ausgabe enthielt diese Zeile:

JAVA_HOME:   /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 

Also offensichtlich musste ich JAVA_HOME setzen. Worauf sollte es eingestellt werden? /usr/libexec/java_home gibt das gleiche Verzeichnis zurück. Das JavaVirtualMachines-Verzeichnis enthält keine anderen Unterordner. Also habe ich versucht, die Java-Systemsteuerung zu erkunden (über Systemeinstellungen). Unter dem „Java“, klicken Sie auf „Ansicht“ und der Weg für 7u45 gegeben:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java 

Also habe ich versucht, diese zu erraten, dass die Contents/Home Verzeichnisse isomorph waren:

$ 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. 

dass ist nicht gut .

Ich suchte und fand this post, und auf Lasses Rat habe ich /usr/local/Cellar/neo4j/1.9.4/libexec/bin/utils bearbeitet. Ich habe zwei Linien:

# 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 
} 

und versuchte es erneut:

$ 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. 

Es ist wie der Raum in dem Pfad sieht verwirrend. Ich versuchte, es zu entkommen, aber mein erster Ansatz gescheitert:

$ 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 

Und dann habe ich beschlossen, dass die einfache (nicht unbedingt schön) Lösung war nur einen symbolischen Link zu machen:

$ cd /Library/ 
$ sudo ln -s Internet\ Plug-Ins/ Internet-Plug-Ins 
$ export JAVA_HOME=/Library/Internet-Plug-Ins/JavaAppletPlugin.plugin/Contents/Home 

An diesem Punkt neo4j start lief richtig; und ich habe es geschafft, auf V2.0.0-M6 zu aktualisieren und es funktionierte immer noch.

+2

Können Sie versuchen, diese Datei herunterladen und in Ihrem bin-Verzeichnis und dann versuchen, JAVA_HOME auf den Pfad mit Leerzeichen in - https://raw.github.com/mneedham/neo4j/54f47c41164d9c317aefefc2a37149bac283adda/packaging/standalone/src/ Haupt/Verteilung/shell-scripts/bin/neo4j. Und dann lass es mich wissen, ob es richtig starten kann. –

+0

Das hat funktioniert, danke! – philh

+0

Das funktioniert wie ein Zauber! Danke ! – user1713964

1

Sie müssen Java JDK 1.7.x auf Max OS installieren und dann

Run dies zu sehen, wo ist die neueste Java JDK ist.

$/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 

Dieser Fall meine neueste Version 1.7.0_45

$ export JAVA_HOME =/Library/Java/JavaVirtualMachines/ist jdk1.7.0_45.jdk/Contents/Startseite

$ bin/Neo4j

Es funktioniert für mich beginnen.

+0

Das findet JDK 1.7.x für mich nicht, nur die 1.6.0, die standardmäßig verwendet wurde. – philh

+0

Wenn Sie alle Programme ändern JDK 1.7.x standardmäßig verwenden $ vim Bash_profile Press i Add Linie (Text einfügen) -> export JAVA_HOME = $ (/ usr/libexec/java_home) Presse ESC dann geben Sie ein: wq – MobileDevMaster

+1

Ich weiß zu schätzen, dass Sie versuchen, hilfreich zu sein, aber haben Sie meinen Kommentar zu dieser Antwort gelesen oder die Antwort, die ich oben gepostet habe? Ich weiß, wie man Textdateien bearbeitet, ich habe bereits JAVA_HOME in meinem Profil gesetzt und/usr/libexec/java_home * noch * findet JDK 1.7.x nicht. – philh