jdk - Cómo cambiar maven java home
maven-compiler-plugin (8)
Quiero cambiar maven java home, que está abierto jdk con sun jdk. Cómo puedo hacerlo ?
root@ak-EasyNote-TM98:~# mvn -version
Apache Maven 3.0.4
Maven home: /usr/share/maven
Java version: 1.6.0_24, vendor: Sun Microsystems Inc.
Java home: /usr/lib/jvm/java-6-openjdk-amd64/jre
Default locale: tr_TR, platform encoding: UTF-8
OS name: "linux", version: "3.2.0-34-generic", arch: "amd64", family: "unix"
Edit:
Lo siento mucho. Olvidé escribir el siguiente código:
root@ak-EasyNote-TM98:~$ java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
La ruta predeterminada de mi casa java es sun jdk ya. Pero maven java home ha señalado openjdk. Quiero arreglarlo solo para maven.
Estoy usando Mac y ninguna de las respuestas anteriores me ayudó. Descubrí que maven carga su propio JAVA_HOME desde la ruta especificada en: ~/.mavenrc
Cambié el contenido del archivo para que sea: JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
Actualización: para Linux se verá algo así como:
JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre
Grandes ayudas arriba, pero si tienes un entorno similar al que yo tuve, así es como lo hago funcionar.
- teniendo algunas jdk ejecutándose, openjdk, oracle jdk y algunas versiones.
- instala apache-maven mediante yum, el paquete es apache-maven-3.2.1-1.el6.noarch
Edite este archivo /etc/profile.d/apache-maven.sh, como el siguiente, tenga en cuenta que afectará a todo el sistema.
$ cat /etc/profile.d/apache-maven.sh
MAVEN_HOME=/usr/share/apache-maven
M2_HOME=$MAVEN_HOME
PATH=$MAVEN_HOME/bin:$PATH
# change below to the jdk you want mvn to reference.
JAVA_HOME=/usr/java/jdk1.7.0_40/
export MAVEN_HOME
export M2_HOME
export PATH
export JAVA_HOME
Incluso si instala Oracle JDK, su variable $JAVA_HOME
debe referirse a la ruta del JRE que está dentro de la raíz JDK. Puede consultar mi otra respuesta a una pregunta similar para obtener más detalles.
La mejor manera de forzar una JVM específica para MAVEN es crear un archivo de todo el sistema cargado por la secuencia de comandos mvn.
Este archivo es /etc/mavenrc
y debe declarar una variable de entorno JAVA_HOME
que apunte a su JVM específica.
Ejemplo:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
Si el archivo existe, está cargado.
Aquí hay un extracto del script mvn
para comprender:
if [ -f /etc/mavenrc ] ; then . /etc/mavenrc fi if [ -f "$HOME/.mavenrc" ] ; then . "$HOME/.mavenrc" fi
Alternativamente, el mismo contenido se puede escribir en ~/.mavenrc
Parece ser un duplicado de https://askubuntu.com/questions/21131/how-to-correctly-remove-openjdk-and-jre-and-set-the-system-use-only-and-only-sun#answer-21137 suponiendo que estás usando Ubuntu.
La clave es usar el comando sudo update-java-alternatives -s java-6-sun
. Cualquier comando que dependa de javac
se verá afectado y no solo Maven.
Si está en Linux, establezca JAVA_HOME usando la sintaxis export JAVA_HOME=<path-to-java>
. En realidad, no es solo para Maven.
Simplemente configure la propiedad env JAVA_HOME.
Tengo dos versiones de Java en mi servidor ubuntu 14.04. java 1.7
y java 1.8
.
Tengo un proyecto que necesito construir usando java 1.8
.
Si reviso mi versión java -version
usando java -version
yo obtengo
java version "1.8.0_144"
Pero cuando hice mvn -version
obtengo:
Java version: 1.7.0_79, vendor: Oracle Corporation
Para configurar la versión java8
en java8
Hago esto:
export JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre/
Entonces cuando hago mvn -version
obtengo:
Java version: 1.8.0_144, vendor: Oracle Corporation
Espero que esto ayude a alguien más.