2013-10-31 9 views

答えて

9

私は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の」タブの下で、「ビュー」をクリックし、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. 

私は検索してthis postを見つけ、Lasseのアドバイスで/usr/local/Cellar/neo4j/1.9.4/libexec/bin/utilsを編集しました。私は2つの行を追加:

# 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にアップグレードすることができましたが、それでも機能しました。

+2

このファイルをダウンロードしてbinディレクトリに入れて、空白を含むパスにJAVA_HOMEを設定してみてください。https://raw.github.com/mneedham/neo4j/54f47c41164d9c317aefefc2a37149bac283adda/packaging/standalone/src/メイン/ディストリビューション/シェルスクリプト/ bin/neo4j。そして、それが正しく始めることができるかどうか私に知らせてください。 –

+0

これはうまくいった、ありがとう! – philh

+0

それは魅力のように機能します!ありがとうございました ! – user1713964

1

あなたは、JDKがある最新のJavaがどこにあるか、これは見て実行]をごマックスOS上でJavaのJDK 1.7.xをインストールする必要があり、その後

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

$輸出JAVA_HOME = /ライブラリ/ Javaの/ JavaVirtualMachines/jdk1.7.0_45.jdk /内容/ホーム

$ビン/それは私の作品

を開始するのNeo4j。

+0

JDK 1.7.xは私にとっては見つからず、デフォルトで使用されていた1.6.0だけでした。 – philh

+0

デフォルト でのJDK 1.7.xを使用するすべてのプログラムを変更したい場合は$ VIM .bash_profileを私は 追加ライン(テキスト挿入する) プレス - > 輸出JAVA_HOME = $(は/ usr/libexecに/ JAVA_HOME) プレスESCを入力して:wq – MobileDevMaster

+1

あなたは参考になることを感謝しますが、私はこの答え、または私が上に投稿した答えに自分のコメントを読んだのですか?私はテキストファイルを編集する方法を知っています。私のプロファイルにJAVA_HOMEを既に設定しています。/ usr/libexec/java_home * still *はJDK 1.7.xを見つけられません。 – philh

関連する問題