user3127896 user3127896 - 4 months ago 63
Java Question

Error: JAVA_HOME is not defined correctly executing maven

I installed java and set path to environment and when I execute

echo $JAVA_HOME
I get the following output:

/usr/lib/jvm/java-7-oracle/jre/bin/java


I Also installed
apache-maven
and changed
environment
file and now it looks like this:

JAVA_HOME="/usr/lib/jvm/java-7-oracle/jre/bin/java"
M2_HOME=/usr/local/apache-maven/apache-maven-3.0.5
M2=$M2_HOME/bin
MAVEN_OPTS="-Xms256m -Xmx512m"
PATH=$M2:$PATH


But when I execute
mvn --version
I get a warning:

Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/lib/jvm/java-7-oracle/jre/bin/java/bin/java


Can not find out why it repeats in the end
/bin/java/bin/java

Answer

Assuming you use bash shell and installed Java with the Oracle installer, you could add the following to your .bash_profile

export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=$JAVA_HOME/jre/bin:$PATH

This would pick the correct JAVA_HOME as defined by the Oracle installer and will set it first in your $PATH making sure it is found.

Also, you don't need to change it later when updating Java.