JAVA_HOME no está definido correctamente

14

Instalé java jdk hotspot 1.7. Cuando java -versionescribo me sale:

java version "1.7.0" 
Java(TM) SE Runtime Environment (build 1.7.0-b147)

Esto es correcto.

E intenté instalar maven, y agregué al /etc/environmentarchivo:

JAVA_HOME=/usr/lib/jvm/jdk1.7.0
M2_HOME=/usr/local/apache-maven/apache-maven-3.0.4
MAVEN_HOME=/usr/local/apache-maven/apache-maven-3.0.4
M2=/usr/local/apache-maven/apache-maven-3.0.4/bin

Ahora cuando escribo mvn obtengo:

Error: JAVA_HOME is not defined correctly.   We cannot execute
”/usr/lib/jvm/jdk1.7.0”/bin/java

Sin embargo, no estoy poniendo "marca para JAV_HOME var en el archivo de entorno.

Está tratando de huir de

”/usr/lib/jvm/jdk1.7.0”/bin/java

camino, en realidad debería ser

/usr/lib/jvm/jdk1.7.0/bin/java

Cuando mando

$JAVA_HOME

Estoy obteniendo:

bash: ”/usr/lib/jvm/jdk1.7.0”: No such file or directory

Estoy seguro de que la ruta ( /usr/lib/jvm/jdk1.7.0) es correcta.

Kamoliddin
fuente
¿Puede hacer una ls -al /usr/lib/jvmy confirmar que 'jdk1.7.0' es el formato para el nombre del directorio? Cuando usan Oracle, tienden a usar nombres de carpetas extraños
Thomas Ward
ls /usr/lib/jvm/java-7y ls "/usr/lib/jvm/java-7"/binceder, y debería dar el mismo resultado para mí (que no está vacío). La última parte, java-7, es el resultado de una modificación manual: puede y será un poco diferente para usted. Verifique que dicha carpeta exista (jdk1.7.0).
usuario desconocido
Llegué total 44 drwxr-xr-x 3 root root 4096 Jun 28 01:57 . drwxr-xr-x 184 root root 36864 Jun 28 01:34 .. drwxr-xr-x 10 root root 4096 Jun 27 23:30 jdk1.7.0 después de ejecutar este ls -al /usr/lib/jvm comando
Kamoliddin
Tenga en cuenta que para ver una variable en la consola, se espera que escribir: echo $VARNAME. Si solo lo $VARNAMEhace, ejecutará lo que está en esa variable.
Alexis Wilke

Respuestas:

15

JAVA_HOMEdebe establecerse en el nombre del directorio que contiene el bindirectorio que contiene los ejecutables de Java (en particular, en javasí mismo).

Suponiendo que tiene un /usr/lib/jvm/jdk1.7.0directorio, probablemente contiene un jresubdirectorio que contiene el bindirectorio que contiene javay los ejecutables relacionados.

Por lo tanto, probablemente debería estar configurando JAVA_HOMEen /usr/lib/jvm/jdk1.7.0/jrelugar de /usr/lib/jvm/jdk1.7.0.

Eliah Kagan
fuente
Al instalar un JDK, no solo el JRE generalmente conduce a un directorio JDK que contiene un directorio bin, así como a un directorio JRE, que a su vez contenía un directorio bin. Pero JAVA_HOMEsiempre se estableció en el directorio principal, no en el jredirectorio.
usuario desconocido
Interesante, necesito configurarlo en jdk no? Voy a escribir código en Java, compilar, implementar, etc.
Kamoliddin
@Kamoliddin Si Maven está usando $JAVA_HOMEpara saber dónde javacy otros binarios de desarrollo, entonces sí, deberá configurarlo en el jdkdirectorio que contiene el bindirectorio que contiene esos archivos binarios.
Eliah Kagan
Gracias, no lo sé, funcionó después del reinicio, creo que no necesito reiniciar para que se apliquen los cambios. No cambié nada. Funcionó.
Kamoliddin
No estoy seguro de por qué está usando jdk1.7.0 en absoluto ... /usr/lib/jvm/javadebería ser suficiente para ambos javay javac. Alternatives se encarga de esto
Brian