10 votos

Error JAVA_HOME mientras se construye maven, versión OSX-10.8.4

Error: JAVA_HOME is not defined correctly.
  We cannot execute
  /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java

He actualizado mi OSX a 10.8.4. Después de la actualización de OSX he actualizado mi JDK y JRE a 7. Pero estoy recibiendo el error anterior cuando estoy tratando de maven construir del proyecto.

Cuando corro ls -al /System/Library/Frameworks/JavaVM.framework/Versions/

Recibo la siguiente respuesta

drwxr-xr-x  11 root  wheel  374 Jul 22 22:33 .
drwxr-xr-x  10 root  wheel  340 Jul 22 18:30 ..
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.4 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.4.2 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.5 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.5.0 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.6 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.6.0 -> CurrentJDK
drwxr-xr-x   7 root  wheel  238 Jul 22 18:30 A
lrwxr-xr-x   1 root  wheel    1 Jul 22 18:30 Current -> A
lrwxr-xr-x   1 root  wheel   59 Jul 22 18:30 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents

Para ello ls -al /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin

No veo ningún contenido en CurrentJDK más.

Al correr /usr/libexec/java_home

Lo entiendo:

/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home

Soy bastante nuevo en el trabajo con OS X. Hágame saber si puedo haber perdido algún punto todavía en hacer que sea exitoso.

0 votos

¿Puedes correr echo $JAVA_HOME , ls -al /System/Library/Frameworks/JavaVM.framework/Versions/Current‌​JDK/Home/bin y ls -al /System/Library/Frameworks/JavaVM.framework/Versions/ y añadir el resultado a la pregunta?

0 votos

@patrix .bashrc -> export JAVA_HOME=/usr/libexec/java_home .profile -> export PATH=${JAVA_HOME}/bin:$PATH export CATALINA_HOME=/Library/Tomcat/Home .bashrc y .profile tiene los comandos mencionados arriba..

0 votos

@Patrix .. Veo que la ruta de java no se recupera del archivo bashrc. Cuando establezco JAVA_HOME desde el terminal por separado sólo puedo construir un proyecto. ¿Por qué puede ocurrir esto? ¿Alguna idea?

9voto

yuriel Puntos 222

Apple recomienda establecer JAVA_HOME en "/usr/libexec/java_home".

Lo que me funcionó fue envolver esto alrededor de $(). Así que terminé configurando JAVA_HOME como $(/usr/libexec/java_home) con los siguientes comandos:

vim ~/.bash_profile 
export JAVA_HOME=$(/usr/libexec/java_home)
source ~/.bash_profile

0 votos

Esto me ha funcionado perfectamente.

2voto

yoliho Puntos 340

/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java si existe es el Java suministrado por Apple del cual la última versión sería un JRE 1.6.

Para utilizar el JDK de Oracle (el java 7 que mencionas) utiliza la ruta /usr/bin/java si lo has instalado completamente. Tenga en cuenta que el JRE es sólo para los applets de Java y por lo tanto no afecta a /usr/bin/java

Para más información, consulte la documentación de instalación de Oracle

y anotar desde allí

Para ejecutar una versión diferente de Java, especifique la ruta completa o utilice la herramienta java_home:

/usr/libexec/java_home -v 1.7.0_06 --exec javac -version

Para más información, consulte la página man de java_home(1).

0 votos

.profile ->exportar PATH=${JAVA_HOME}/bin:$PATH export CATALINA_HOME=/Library/Tomcat/Home

0 votos

@arvind ¿qué significan esos comentarios?

0 votos

@arvind406 sí pero ¿qué añade o pregunta eso sobre mi respuesta?

1voto

user1342037 Puntos 16

Siga este enlace : https://stackoverflow.com/a/44564303/5005676 Si ves el mvn script: El código falla aquí ---

Pasos para depurar y arreglar:

Paso 1: Abrir el mvn script /Users/Username/apache-maven-3.0.5/bin/mvn (Abrir con el comando less como: less /Users/Username/apache-maven-3.0.5/bin/mvn)

Paso 2: Busca el siguiente código en el script:

  if [ -z "$JAVACMD" ] ; then
  if [ -n "$JAVA_HOME"  ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
      # IBM's JDK on AIX uses strange locations for the executables
      JAVACMD="$JAVA_HOME/jre/sh/java"
    else
      JAVACMD="$JAVA_HOME/bin/java"
    fi
  else
    JAVACMD="`which java`"
  fi
fi

if [ ! -x "$JAVACMD" ] ; then
  echo "Error: JAVA_HOME is not defined correctly."
  echo "  We cannot execute $JAVACMD"
  exit 1
fi

Paso 3: Esto sucede porque la variable JAVACMD no fue establecida. Así que muestra el error.

Nota: Para arreglarlo

export JAVACMD=Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/bin/java

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/

La llave: Si quieres que sea permanente abre emacs.profile

postear los comandos y presionar Ctrl-x Ctrl-c ( save-buffers-kill-terminal ).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X