web-dev-qa-db-fra.com

Comment changer la maison maven Java

Je veux changer le maven Java Home qui est ouvert jdk avec Sun jdk. Comment puis-je le faire ?

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:

Désolé. J'ai oublié d'écrire le code ci-dessous:

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)

Le chemin par défaut de mon domicile Java est déjà Sun jdk. Mais maven Java home a pointé openjdk. Je veux le réparer uniquement pour Maven.

48
RockOnGom

Si vous êtes sous Linux, définissez Java_HOME en utilisant la syntaxe export Java_HOME=<path-to-Java>. En fait, ce n'est pas seulement pour Maven.

44
Evgeniy Dorofeev

Je suis sous Mac et aucune des réponses ci-dessus ne m'a aidé. J'ai découvert que maven chargeait son propre Java_HOME à partir du chemin spécifié dans: ~/.mavenrc

J'ai modifié le contenu du fichier pour qu'il soit: Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home

Pour Linux cela ressemblera à quelque chose comme:
Java_HOME=/usr/lib/jvm/Java-8-Oracle/jre

23
Technotronic

Excellente aide ci-dessus, mais si vous avez le même environnement que moi, voici comment je le fais fonctionner.

  • avoir quelques jdk en cours d'exécution, openjdk, Oracle jdk et quelques versions.
  • installer Apache-maven via yum, le paquet est Apache-maven-3.2.1-1.el6.noarch

Editez ce fichier /etc/profile.d/Apache-maven.sh, par exemple, notez-le, cela affectera tout le système.

$ 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
4
Jasonw

Le meilleur moyen de forcer une machine virtuelle Java spécifique pour MAVEN consiste à créer un fichier système chargé par le script mvn.

Ce fichier est /etc/mavenrc et il doit déclarer une variable d'environnement Java_HOME pointant vers votre machine virtuelle Java.

Exemple: 

export Java_HOME=/usr/lib/jvm/Java-1.8.0-openjdk-AMD64

Si le fichier existe, il est chargé.

Voici un extrait du script mvn afin de comprendre:

 if [-f/etc/mavenrc]; puis
 . /etc/mavenrc
 Fi

 si [-f "$ HOME/.mavenrc"]; puis
 . "$ HOME/.mavenrc" 
 Fi

Alternativement, le même contenu peut être écrit en ~/.mavenrc

3
fxrobin

Même si vous installez le JDK Oracle, votre variable $Java_HOME doit faire référence au chemin du JRE qui se trouve dans la racine du JDK. Vous pouvez vous référer à mon autre réponse à une question similaire pour plus de détails.

3
Ivaylo Slavov

Semble être une copie de https://askubuntu.com/questions/21131/how-to-correctly-remove-openjdk-and-jre-and-set-the-system-use-only-and-only- Sun # answer-21137 en supposant que vous utilisez Ubuntu. 

La clé consiste à utiliser la commande Sudo update-Java-alternatives -s Java-6-Sun. Toutes les commandes qui s'appuient sur javac seront affectées et pas seulement Maven.

2
Drew

Il suffit de définir la propriété Java_HOME env.

2
Piotr Gwiazda

J'ai deux versions de Java sur mon serveur Ubuntu 14.04: Java 1.7 et Java 1.8

J'ai un projet que je dois construire en utilisant Java 1.8

Si je vérifie ma version de Java en utilisant Java -version

Je reçois 

Java version "1.8.0_144"

Mais quand j'ai fait mvn -version je reçois:

Java version: 1.7.0_79, vendor: Oracle Corporation

Pour définir la version mvn sur Java8

Je fais ça:

export Java_HOME=/usr/lib/jvm/Java-8-Oracle/jre/

Alors quand je fais mvn -version je reçois:

Java version: 1.8.0_144, vendor: Oracle Corporation
0
Mubashar Abbas