it-swarm.com.de

Wie man Maven Java nach Hause wechselt

Ich möchte Maven Java Home ändern, die mit Sun Jdk Open JDK ist. Wie kann ich es tun ?

[email protected]:~# 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:

So leid. Ich habe vergessen, den folgenden Code zu schreiben:

[email protected]:~$ 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)

Mein Java-Standardpfad ist bereits Sun jdk. Aber Maven Java Home hat auf openjdk hingewiesen. Ich möchte es nur für Maven reparieren.

48
RockOnGom

Wenn Sie sich unter Linux befinden, legen Sie Java_HOME mit der Syntax export Java_HOME=<path-to-Java> fest. Eigentlich ist es nicht nur für Maven.

44

Ich bin mit Mac und keine der obigen Antworten hat mir geholfen. Ich habe herausgefunden, dass Maven sein eigenes Java_HOME von dem in: ~/.mavenrc angegebenen Pfad lädt.

Ich habe den Inhalt der Datei folgendermaßen geändert: Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home

Für Linux wird es ungefähr so ​​aussehen:
Java_HOME=/usr/lib/jvm/Java-8-Oracle/jre

23
Technotronic

Großartig hilft oben, aber wenn Sie die ähnliche Umgebung wie ich haben, dann bekomme ich es so.

  • einige jdk laufen, openjdk, Oracle jdk und einige Versionen.
  • apache-Maven über yum installieren, Paket ist Apache-Maven-3.2.1-1.el6.noarch

Bearbeiten Sie diese Datei /etc/profile.d/Apache-maven.sh wie die folgende. Beachten Sie, dass sie das gesamte System beeinflusst.

$ 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

Um eine bestimmte JVM für MAVEN zu erzwingen, können Sie am besten eine systemweite Datei erstellen, die vom mvn-Skript geladen wird.

Diese Datei ist /etc/mavenrc und muss eine Java_HOME-Umgebungsvariable deklarieren, die auf Ihre spezifische JVM verweist.

Beispiel: 

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

Wenn die Datei existiert, wird sie geladen.

Hier ist ein Auszug des mvn-Skripts, um es zu verstehen:

 if [-f/etc/mavenrc]; dann
 . /etc/mavenrc
 fi 

 if [-f "$ HOME/.mavenrc"]; dann
 . "$ HOME/.mavenrc" 
 fi 

Alternativ kann derselbe Inhalt in ~/.mavenrc geschrieben werden.

3
fxrobin

Selbst wenn Sie das Oracle-JDK installieren, sollte Ihre $Java_HOME-Variable auf den Pfad der JRE verweisen, die sich in dem JDK-Stammverzeichnis befindet. Sie können auf meine andere Antwort auf eine ähnliche Frage für weitere Details verweisen.

3
Ivaylo Slavov

Scheint ein Duplikat von https://askubuntu.com/questions/21131/wie-zu-korrekt-entfernen-openjdk-und-jahre-und-set-des-system-nur-und-noch- Sun # answer-21137 unter der Annahme, dass Sie Ubuntu verwenden. 

Der Schlüssel ist, den Befehl Sudo update-Java-alternatives -s Java-6-Sun zu verwenden. Alle Befehle, die auf javac angewiesen sind, sind betroffen und nicht nur Maven.

2
Drew

Legen Sie einfach die Java_HOME-Eigenschaft env fest.

2
Piotr Gwiazda

Ich habe zwei Java-Versionen auf meinem Ubuntu-Server 14.04: Java 1.7 und Java 1.8

Ich habe ein Projekt, das ich mit Java 1.8 erstellen muss. 

Wenn ich meine Java-Version mit Java -version überprüfe

Ich bekomme 

Java version "1.8.0_144"

Aber als ich mvn -version gemacht habe, bekomme ich:

Java version: 1.7.0_79, vendor: Oracle Corporation

So legen Sie die MVN-Version auf Java8 fest

Ich mache das:

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

Wenn ich dann mvn -version mache, bekomme ich:

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