118

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 を使用するにはどうすればよいですか?

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

4

9 に答える 9

128

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

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 を設定する

于 2012-04-28T13:26:28.433 に答える
17

Java設定からパスを見つけるには、 /usr/libexec/java_home -X

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

<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>
于 2012-04-30T04:45:59.357 に答える
10

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

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

于 2012-04-26T19:18:59.393 に答える
7

誰かが Mac OSX 'Mavericks' を実行している 64 ビット Mac に Maven をインストールしている場合、Maven をインストールするために時間を節約し、髪を引っ張ることができます。私はこれに従おうとしていました(Java_homeの場所がMavericksで変更されたため失敗しました:

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

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

完了したら、 $ maven -version が機能しない場合でも慌てる必要はありません。代わりに、maven.apache.org/download.cgi が推奨するように $mvn --version を使用してください。

それは機能しましたが、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 ホーム: /Library/Java/JavaVirtualMachines/jdk1.7.0_45。 jdk/Contents/Home/jre デフォルトのロケール: en_US、プラットフォームのエンコード: UTF-8 OS 名: "mac os x"、バージョン: "10.9"、アーキテクチャ: "x86_64"、ファミリ: "mac"

成功!しかし待ってください...次にターミナルを開いて mvn -v を実行すると、Javaバージョン1.6に戻りました。なんて!

私が読んだ使用からのある種の想定されるバグ: echo JAVA_HOME= /usr/libexec/java_home -v 1.7| sudo ティー -a /etc/mavenrc

そしていま:

Maven ホーム: /usr/local/Cellar/maven/3.1.1/libexec Java バージョン: 1.7.0_45、ベンダー: Oracle Corporation Java ホーム: /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jreデフォルトのロケール: en_US、プラットフォームのエンコード: UTF-8 OS 名: "mac os x"、バージョン: "10.9"、アーキテクチャ: "x86_64"、ファミリ: "mac"

于 2013-11-25T05:27:14.230 に答える
4

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

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

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

于 2012-08-08T21:58:09.687 に答える
2

私のマシンでOK。はい、Oracle のインストーラーはその役割を正確に果たしていませんでした。

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ファインダーで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

于 2013-07-28T17:26:46.117 に答える
0

問題の一部は Java の起動メカニズムにあると思います。Java7 でコードを実行するように Eclipse を取得できましたが、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 -version」はうまく機能します。Java7 オプション以外のすべてのチェックを外してみましたが、Eclipse はまったく実行されませんでした。

于 2012-04-30T04:31:23.780 に答える