plugin jdk home compiler change maven java openjdk

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



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.