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に対してのみ修正したい。
Linuxを使用している場合、構文export Java_HOME=<path-to-Java>
を使用してJava_HOMEを設定します。実際には、Mavenだけのものではありません。
私は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
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
に同じコンテンツを書き込むことができます
上記で大いに役立ちますが、あなたが私と同じような環境を持っているなら、これは私がそれを機能させる方法です。
このファイル/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
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だけでなく影響を受けます。
Oracle JDKをインストールする場合でも、$Java_HOME
変数はJREのパスを参照する必要があります内部 JDKルート。詳細については、 同様の質問に対する他の回答 を参照してください。
Java_HOME envプロパティを設定するだけです。
Ubuntuサーバー14.04にJavaバージョンが2つあります:Java 1.7
とJava 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
Java8
に設定するには私はこれをします:
export Java_HOME=/usr/lib/jvm/Java-8-Oracle/jre/
その後、mvn -version
を実行すると、次の結果が得られます。
Java version: 1.8.0_144, vendor: Oracle Corporation