error JAVA_HOME durante la compilación maven, versión OSX-10.8.4

10
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, actualicé mi JDK y JRE a 7. Pero recibo el error anterior cuando intento la creación de un proyecto de Maven.

Cuando ejecuto 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 este ls -al /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin

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

Al ejecutar /usr/libexec/java_home

me sale:

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

Soy bastante nuevo en el trabajo con OS X. Avísame si podría haber perdido algún punto para que sea exitoso.

    
pregunta arvind406 22.07.2013 - 16:18

3 respuestas

9

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

Lo que funcionó para mí 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
    
respondido por el hcpl 14.04.2014 - 09:14
2

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

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

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

y nota desde allí

  

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

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

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

    
respondido por el Mark 22.07.2013 - 16:57
1

Siga este enlace: enlace Si ve la secuencia de comandos mvn: el código falla aquí ---

Pasos para la depuración y reparación:

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

Paso 2: Encuentra 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: Está sucediendo porque la variable JAVACMD no se configuró. Entonces muestra el error.

Nota: para solucionarlo

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/

Clave: si desea que sea permanente abierto emacs.profile

publique los comandos y presione Ctrl-x Ctrl-c (save-buffers-kill-terminal).

    
respondido por el Shubham Verma 15.06.2017 - 11:53

Lea otras preguntas en las etiquetas