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.


¿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.


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.