2017-10-30 20 views
-1

ますecho $ JAVA_HOMEが空白

Abdelmajids-のiMacを返す理由を私は知らない:〜マジッド$ viの.profileを

export PATH=/usr/local/bin:(...) 
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load 
RVM into a shell session *as a function* 
export JAVA_HOME=$(/usr/libexec/java_home) 
~                          

~  


Abdelmajids-iMac:~ majid$ /usr/libexec/java_home 
/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home 
Abdelmajids-iMac:~ majid$ vi .bash_profile 
Abdelmajids-iMac:~ majid$ source .bash_profile 
-bash: .bash_profile: line 1: syntax error near unexpected token `(' 
-bash: .bash_profile: line 1: `export PATH=/usr/local/bin:(...)' 
Abdelmajids-iMac:~ majid$ echo $JAVA_HOME 

Abdelmajids-iMac:~ majid$ 
+3

を使用する:あなたはコピーどこ '(...)'それがリテラルであることを意味していなかった、から –

答えて

1

声明export JAVA_HOME=$(/usr/libexec/java_home)が間違っているようです。 bashは$()内の情報を評価し、空白を返します。

export JAVA_HOME=$(echo /usr/libexec/java_home)またはexport JAVA_HOME=/usr/libexec/java_homeである必要があります。

このリンクでは、$()の使用方法について説明します。 Difference between ${} and $() in bash scripting

0

$(str)ここで、strはコマンドでなければなりません。あなたの場合、$(/ usr/libexec/java_home)は何も返しません。 ちょうどあなたがヒント... 1行目にその構文エラーを修正する必要があり

export JAVA_HOME=/usr/libexec/java_home 
+0

実際には/ usr/libexecに/ java_homeはjavaホームディレクトリではありませんが、javaホームディレクトリの場所を特定してそのパスを出力する実行可能ファイルです。質問の例のように、OPのコンピュータには "/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home"が出力されます。その割り当てが正しいように私に。 –

関連する問題