web-dev-qa-db-ja.com

Java JDK 7 for Mac OS Xをインストールした後-mvn -versionでJavaバージョン1.6.0_31が引き続き表示される

Oracleは4月26日にMac OS X用にJava JDK 7をリリースしました。インストール手順に従いましたが、ターミナルウィンドウでJava -versionを実行すると次のようになります。

Java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.0-b21, mixed mode)

ただし、ターミナルウィンドウでmvn -versionを実行すると、次のようになります。

Apache Maven 3.0.2 (r1056850; 2011-01-08 18:58:10-0600)
Java version: 1.6.0_31, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x", version: "10.7.3", Arch: "x86_64", family: "mac"

MavenでJava JDK 1.7.0_04を使用するにはどうすればよいですか?

助けてくれてありがとう。

117
Bruce Phillips

最終的にここで答えを見つけました:

http://www.adam-bien.com/roller/abien/entry/Java_se_development_kit_7

Macでは代わりにJava_HOME=$(/usr/libexec/Java_home)を使用し、「Java Preferences.app」で現在のjdkを設定する必要があります。

〜/ .profileでJava_HOMEを設定します

126
Bruce Phillips

問題は、JavaVm.frameworkのバージョン内のシンボリックリンク「CurrentJDK」が古いjdkを指しているため、次のコマンドを使用してCurrentJDKを最新の(1.7.0_45)に設定すると動作することです。

cd /System/Library/Frameworks/JavaVM.framework/Versions
Sudo rm CurrentJDK
Sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents CurrentJDK

参照: http://Java.dzone.com/articles/installing-jdk-7-mac-os-x

34
Mahmoud Adam

Java Preferencesからパスを見つけるには、/usr/libexec/Java_home -Xを試してください

私のJava 7エントリは次のようになります。

<dict>
    <key>JVMArch</key>
    <string>x86_64</string>
    <key>JVMBundleID</key>
    <string>com.Oracle.Java.7u04.jdk</string>
    <key>JVMEnabled</key>
    <true/>
    <key>JVMHomePath</key>
    <string>/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home</string>
    <key>JVMIsBuiltIn</key>
    <false/>
    <key>JVMName</key>
    <string>Java SE 7</string>
    <key>JVMPlatformVersion</key>
    <string>1.7</string>
    <key>JVMVendor</key>
    <string>Oracle Corporation</string>
    <key>JVMVersion</key>
    <string>1.7.0_04</string>
</dict>
17
dmolony

Java_HOME環境変数を新しいJDK 1.7の場所に変更する必要があります。

Java_HOMEが定義されている可能性のある場所については、 この質問 をご覧ください。ターミナルでwhich Javaと入力してJavaインストールのパスを見つけ、Java_HOMEを更新してそのパスを指すようにします(ただし、末尾のbinフォルダーは除外します)。

9
Nate

Mac OSX「Mavericks」を実行している64ビットMacにMavenをインストールしている人がいれば、Mavenをインストールしようとする時間と手間を省くことができます。私はこれに従うことを試みていました(Java_homeの場所がMavericksで変更されたため失敗しました:

http://maven.Apache.org/download.cgi

このウェブサイトを見つけるまで髪を引っ張っていました.homebrewをインストールしてこのページの指示に従うことをお勧めします: http://techspunky.blogspot.in/2013/10/how-to-install-maven -on-mac-osx-109.html

完了したら、$ maven -versionが機能しなくてもパニックに陥らず、代わりに$ mvn --versionをmaven.Apache.org/download.cgiが推奨するように使用します。

動作しましたが、Mavenが使用しているJava SDKがJavaバージョン:1.6.0_65であり、システムにインストールした最新のSDKではないことに気付きました。

Java_HOME = /usr/libexec/Java_homeを設定したら

正しいSDKを使用していました:Mavenホーム:/usr/local/Cellar/maven/3.1.1/libexec Javaバージョン:1.7.0_45、ベンダー:Oracle Corporation Java home: /ライブラリ/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jreデフォルトロケール:en_US、プラットフォームエンコーディング:UTF-8 OS名: "mac os x"、バージョン: "10.9"、Arch: "x86_64" 、ファミリー:「mac」

成功!待ってください...次に端末を開いてmvn -vを実行したとき、Javaバージョン1.6に戻りました。 WTH!

私が読んだものからのある種の想定されるバグ:echo Java_HOME = /usr/libexec/Java_home -v 1.7 |須藤ティー-a/etc/mavenrc

そしていま:

Mavenホーム:/usr/local/Cellar/maven/3.1.1/libexec Javaバージョン:1.7.0_45、ベンダー:Oracle Corporation Java home:/ Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jreデフォルトのロケール:en_US、プラットフォームエンコーディング:UTF-8 OS名: "mac os x"、バージョン: "10.9"、Arch: "x86_64"、family: "mac"

7
ConfusedDeer

MavenがまだJava 6を使用している理由は、それを起動する/ usr/bin/mvnスクリプトが、指定された現在のJavaバージョンを解決するための正しいOS/Xメソッドを使用しないためですJava Preferencesで。詳細については、このMavenの問題を参照してください。

http://jira.codehaus.org/browse/MNG-4226

投票すると修正される可能性があります。それまでの間、その問題に関するコメントとパッチに示されているように/ usr/bin/mvnスクリプトを変更すると、目的の結果が得られます。

4
Robert Elliot

私のマシンでOK。はい、Oracleインストーラーは正確にその仕事をしませんでした。そして、1.6がまだ実行されていたので、私は終わりがなく混乱しました。

Java run time was updated 

Java -version
Java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

しかし、SDK HOMEは実際にはまだ1.6を指すsimリンクです

/Library/Java/Home FinderのGetInfoは/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Homeをポイントします

ターミナル内

./Home -> /System/Library/Frameworks/JavaVM.framework/Home

図を移動します。

ここで1.7を見つけ、それを使用してビルドしています:/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home

2
dave

問題の原因は、Java起動メカニズムにあると思います。 EclipseでJava7でコードを実行できるようになりましたが、Eclipse自体はまだJava6で実行されていると思います。また、1年前に最後にコンパイルされ、jarbundler-2.1.0.jar(オプションjvmversion = "1.6+")を使用してビルドされたJavaプログラムがあります。 .appファイルをダブルクリックするとJava6が実行されますが、.app内の.jarファイルをダブルクリックするとJava7が実行されます。

また、Java_HOMEは使用していませんが、質問に示されている正しいJavaバージョン "1.7.0_04"を取得しています。 Java_HOMEは赤いニシンのようです。たぶんMavenはそれを必要としますが、Eclipseはそれを使用していないようで、jarファイルも起動しません。

また、Java PreferencesツールでJava7を設定しても、.app Javaファイルの起動には影響しないようです。ただし、ターミナルからの「Javaバージョン」はうまく機能します。 Java7オプション以外のすべてのチェックをオフにしようとすると、Eclipseはまったく実行されませんでした。

0
dmolony

Java_HOMEがローカルユーザーのbashにある場合、mvnは、設定したJava_HOMEに関係なく、システムの現在のJavaバージョンを選択します。

したがって、最初にコマンド「which mvn」を実行し、使用している実行可能mvnを確認します。その後、そのmvnファイルを編集およびJava_HOMEを変更変数を好みのJavaホームに変更します。

0
Ankit Bhatnagar