Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mac echo $JAVA_HOME return blank

Tags:

java

bash

I don't know why echo $JAVA_HOME return blank

Abdelmajids-iMac:~ majid$ 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$ 
like image 631
user1034127 Avatar asked Oct 30 '17 01:10

user1034127


2 Answers

Statement export JAVA_HOME=$(/usr/libexec/java_home) seems correct; bash would have evaluated the information within $() and returned a blank if .

Looks like a syntax error caused the error not to execute, leaving JAVA_HOME empty.

The usage of $() is discussed in this link. Difference between ${} and $() in Bash.

like image 151
pradosh nair Avatar answered Sep 18 '22 18:09

pradosh nair


$(str) where str should be a command. In your case, $(/usr/libexec/java_home) will return nothing. Just use

export JAVA_HOME=/usr/libexec/java_home 
like image 41
jprism Avatar answered Sep 17 '22 18:09

jprism