Oracle lanzó Java JDK 7 el 26 de abril para Mac OS X. Seguí las instrucciones de instalación y cuando hago java -version en una ventana de terminal obtengo:
java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.0-b21, mixed mode)
Sin embargo, cuando lo hago mvn -version
en la ventana de la terminal, obtengo:
Apache Maven 3.0.2 (r1056850; 2011-01-08 18:58:10-0600)
Java version: 1.6.0_31, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x", version: "10.7.3", arch: "x86_64", family: "mac"
¿Cómo puedo hacer que Maven use Java JDK 1.7.0_04?
Gracias por la ayuda.
El problema es que el enlace simbólico "CurrentJDK" dentro de las versiones de JavaVm.framework apunta al antiguo jdk, así que cuando utilicé los siguientes comandos para configurar el CurrentJDK al último (1.7.0_45), funciona
referencia: http://java.dzone.com/articles/installing-jdk-7-mac-os-x
fuente
jdk1.7.0_45.jdk
, la mía fuejdk1.7.0_51.jdk
Para encontrar la ruta desde las Preferencias de Java, intente
/usr/libexec/java_home -X
Mi entrada de Java7 se ve así:
fuente
Necesita cambiar la
JAVA_HOME
variable de entorno a la nueva ubicación de JDK 1.7.Mire esta pregunta para ver las posibles ubicaciones donde se podría definir JAVA_HOME. En una terminal, escriba
which java
para buscar la ruta de su instalación de Java y luego actualiceJAVA_HOME
para que apunte a esa ruta (pero excluya la carpeta bin final).fuente
En caso de que alguien esté instalando Maven en una Mac de 64 bits que ejecute Mac OSX 'Mavericks', ahórrese algo de tiempo y tirones de pelo tratando de instalar Maven. Estaba tratando de seguir esto (que falló porque la ubicación de java_home ha cambiado en Mavericks:
http://maven.apache.org/download.cgi
Me estaba tirando de los pelos hasta que encontré este sitio web, que le recomienda instalar homebrew y seguir las instrucciones de esta página: http://techspunky.blogspot.in/2013/10/how-to-install-maven-on-mac -osx-109.html
una vez completado, no entre en pánico cuando $ maven -version no funcione, en su lugar use $ mvn --version como se recomienda maven.apache.org/download.cgi.
Funcionó, pero luego noté que el SDK de Java que Maven estaba usando era la versión de Java: 1.6.0_65, que no es el último SDK que instalé en el sistema.
Una vez que configuro JAVA_HOME =
/usr/libexec/java_home
Estaba usando el SDK correcto: Maven home: /usr/local/Cellar/maven/3.1.1/libexec Versión de Java: 1.7.0_45, proveedor: Oracle Corporation Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_45. jdk / Contenidos / Inicio / jre Configuración regional predeterminada: en_US, codificación de plataforma: UTF-8 Nombre del sistema operativo: "mac os x", versión: "10.9", arch: "x86_64", familia: "mac"
¡Éxito! pero espera ... la próxima vez que abrí la terminal y ejecuté mvn -v, volvió a la versión 1.6 de Java. WTH!
es una especie de supuesto error de lo que leí use: echo JAVA_HOME =
/usr/libexec/java_home -v 1.7
| sudo tee -a / etc / mavenrcy ahora:
Inicio de Maven: /usr/local/Cellar/maven/3.1.1/libexec Versión de Java: 1.7.0_45, proveedor: Oracle Corporation Inicio de Java: /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre Configuración regional predeterminada: en_US, codificación de plataforma: UTF-8 Nombre del sistema operativo: "mac os x", versión: "10.9", arch: "x86_64", familia: "mac"
fuente
export JAVA_HOME=`/usr/libexec/java_home`
funcionó bien para mí para que la var JAVA_HOME se exportara correctamente.La razón por la que Maven todavía usa Java 6 es que el script / usr / bin / mvn que lo inicia no usa el método correcto de OS / X para resolver la versión actual de Java como se especifica en las Preferencias de Java. Consulte este número de Maven para obtener más detalles:
http://jira.codehaus.org/browse/MNG-4226
Votarlo podría arreglarlo; Mientras tanto, si modifica el script / usr / bin / mvn como se muestra en los comentarios y el parche sobre ese problema, obtendrá el resultado deseado.
fuente
Ok en mi máquina. Sí, el instalador de Oracle no hizo exactamente su trabajo, y me confundió muchísimo después de que 1.6 todavía se estaba ejecutando.
pero el SDK HOME es en realidad un enlace SIM que todavía apunta a 1.6
/Library/Java/Home
en el buscador GetInfo apunta a/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
en la terminal
Imagínate.
Encontré 1.7 aquí y lo estoy usando para construir con:
/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
fuente
Creo que el problema radica en parte en el mecanismo de lanzamiento de Java. He podido hacer que Eclipse ejecute mi código en Java7, pero creo que eclipse todavía se está ejecutando en Java6. Además, tengo un programa java que se compiló por última vez hace un año y se creó con jarbundler-2.1.0.jar (con la opción jvmversion = "1.6+"). Cuando hago doble clic en el archivo .app, ejecuta Java6, pero cuando hago doble clic en el archivo .jar dentro del .app, ejecuta Java7.
Además, no uso JAVA_HOME, pero aún obtengo la versión correcta de Java "1.7.0_04" que se muestra en la pregunta. JAVA_HOME parece ser una pista falsa. Tal vez Maven lo necesite, pero Eclipse no parece usarlo, y tampoco lo hace al iniciar archivos jar.
Y después de configurar Java7 en la herramienta de Preferencias de Java, no parece afectar el lanzamiento de archivos .app java. Sin embargo, hace que 'java -version' desde la terminal funcione bien. Intenté desmarcar todo menos la opción Java7, y luego Eclipse no se ejecutó en absoluto.
fuente
Si su JAVA_HOME está ubicado en el bash del usuario local, mvn seleccionará la versión actual de Java del sistema sin importar qué JAVA_HOME haya configurado.
Por lo tanto, primero ejecute el comando ' which mvn ' y verifique qué mvn ejecutable está utilizando. Después de eso, edite ese archivo mvn y cambie la variable JAVA_HOME a su hogar Java preferido.
fuente