簡體   English   中英

安裝Java JDK 7之后對於Mac OS X - mvn -version仍然顯示java版本1.6.0_31

[英]After Installing Java JDK 7 For Mac OS X - mvn -version still shows java version 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?

謝謝您的幫助。

終於找到了答案:

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

問題是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

要從Java Preferences中查找路徑,請嘗試/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>

您需要將JAVA_HOME環境變量更改為新的JDK 1.7位置。

請查看此問題,了解可能定義JAVA_HOME的位置。 在終端中,鍵入which java來查找Java安裝的路徑,然后更新JAVA_HOME以指向該路徑(但排除尾隨bin文件夾)。

如果有人在64位Mac上安裝Maven,運行Mac OSX'Mavericks'可以節省一些時間,並試圖安裝Maven。 我試圖遵循這個(失敗,因為java_home的位置在Mavericks上發生了變化:

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

我把頭發拉出來,直到找到這個網站,建議您安裝自制軟件並按照此頁面上的說明操作: http//techspunky.blogspot.in/2013/10/how-to-install-maven-on-mac -osx-109.html

一旦完成,當$ maven -version不起作用時不要驚慌,而是使用$ mvn --version作為maven.apache.org/download.cgi推薦。

它工作,但后來我注意到Java SDK Maven使用的是Java版本:1.6.0_65,這不是我在系統上安裝的最新SDK。

一旦我設置了JAVA_HOME = /usr/libexec/java_home

它使用了正確的SDK:Maven home:/usr/local/Cellar/maven/3.1.1/libexec Java version:1.7.0_45,vendor:Oracle Corporation Java home:/Library/Java/JavaVirtualMachines/jdk1.7.0_45。 jdk / Contents / Home / jre默認語言環境:en_US,平台編碼:UTF-8操作系統名稱:“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 | sudo tee -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操作系統名稱:“mac os x”,版本:“10.9”,arch:“x86_64”,系列:“mac”

Maven仍在使用Java 6的原因是啟動它的/ usr / bin / mvn腳本沒有使用正確的OS / X方法來解析Java Preferences中指定的當前Java版本。 有關詳細信息,請參閱此Maven問題:

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

投票可能會得到修復; 與此同時,如果您更改/ usr / bin / mvn腳本,如該問題的注釋和補丁中所示,您將獲得所需的結果。

我的機器好的。 是的,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 in 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

我認為問題部分在於java啟動機制。 我已經能夠讓Eclipse在Java7下運行我的代碼,但我認為eclipse本身仍在Java6下運行。 另外,我有一個java程序,它是在一年前最后編譯的,並使用jarbundler-2.1.0.jar(帶有選項jvmversion =“1.6+”)構建。 當我雙擊.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根本不會運行。

如果你的JAVA_HOME位於本地用戶的bash,無論你設置了什么JAVA_HOME,mvn都會選擇系統的當前java版本。

因此,首先運行命令' which mvn '並檢查您正在使用哪個可執行文件mvn。 之后編輯mvn文件並將JAVA_HOME變量更改為您喜歡的java主目錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM