web-dev-qa-db-ja.com

Maven Javaホームを変更する方法

Sun jdkでオープンjdkであるmaven Java homeを変更したい。どうすればいいですか?

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:

ごめんなさい私は以下のコードを書くのを忘れました:

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)

JavaホームのデフォルトパスはすでにSun jdkです。しかし、Maven Java homeはopenjdkを指しています。 Mavenに対してのみ修正したい。

58
RockOnGom

Linuxを使用している場合、構文export Java_HOME=<path-to-Java>を使用してJava_HOMEを設定します。実際には、Mavenだけのものではありません。

51

私はMacを使用であり、上記の答えはどれも私を助けませんでした。 mavenは、次の場所で指定されたパスから独自のJava_HOMEをロードすることがわかりました:~/.mavenrc

ファイルの内容を次のように変更しました:Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home

Linuxの場合、次のようになります。
Java_HOME=/usr/lib/jvm/Java-8-Oracle/jre

27
Technotronic

MAVENに特定のJVMを強制する最良の方法は、mvnスクリプトによってロードされるシステム全体のファイルを作成することです。

このファイルは/etc/mavenrcであり、特定のJVMを指すJava_HOME環境変数を宣言する必要があります。

例:

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

ファイルが存在する場合、ロードされます。

以下は、理解するためのmvnスクリプトの抜粋です。

 if [-f/etc/mavenrc];その後
。 /etc/mavenrc
 fi 
 
 if [-f "$ HOME/.mavenrc"];その後
。 「$ HOME/.mavenrc」
 fi 

または、~/.mavenrcに同じコンテンツを書き込むことができます

4
fxrobin

上記で大いに役立ちますが、あなたが私と同じような環境を持っているなら、これは私がそれを機能させる方法です。

  • 実行中のjdk、openjdk、Oracle jdk、およびいくつかのバージョンがあります。
  • yum経由でApache-mavenをインストールします。パッケージはApache-maven-3.2.1-1.el6.noarchです

このファイル/etc/profile.d/Apache-maven.shを次のように編集します。システム全体に影響することに注意してください。

$ 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

https://askubuntu.com/questions/21131/how-to-correctly-remove-openjdk-and-jre-and-set-the-system-use-only-and-の複製のように見えますonly-Sun#answer-21137 Ubuntuを使用していると仮定します。

重要なのは、Sudo update-Java-alternatives -s Java-6-Sunコマンドを使用することです。 javacに依存するコマンドは、Mavenだけでなく影響を受けます。

3
Drew

Oracle JDKをインストールする場合でも、$Java_HOME変数はJREのパスを参照する必要があります内部 JDKルート。詳細については、 同様の質問に対する他の回答 を参照してください。

3
Ivaylo Slavov

Java_HOME envプロパティを設定するだけです。

2
Piotr Gwiazda

Ubuntuサーバー14.04にJavaバージョンが2つあります:Java 1.7Java 1.8

Java 1.8を使用してビルドする必要があるプロジェクトがあります。

Java -versionを使用してJavaバージョンを確認する場合

私は得る

Java version "1.8.0_144"

しかし、私がmvn -versionをしたとき、私は得る:

Java version: 1.7.0_79, vendor: Oracle Corporation

MvnバージョンをJava8に設定するには

私はこれをします:

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

その後、mvn -versionを実行すると、次の結果が得られます。

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