2015-01-09 58 views
8

我安裝了Java 8 SDK(與更新25 JRE)使用此頁面OS X約塞米蒂沒有找到的Java 8運行

http://docs.oracle.com/javase/8/docs/technotes/guides/install/mac_jdk.html 

上的說明甲骨文的Java網站,並把下面一行在我~/.bash_profile

export JAVA_HOME="/usr/libexec/java_home -v 1.8" 

但是當我嘗試編譯或運行中的Bash一個Java程序中,我得到以下信息

No Java runtime present, requesting install. 

這個窗口

![enter image description here][1] 

我跑/usr/libexec/java_home檢查:

$ /usr/libexec/java_home 
Unable to find any JVMs matching version "(null)". 
No Java runtime present, try --request to install. 

但JRE是

/System/Library/Frameworks/JavaVM.framework/Versions/Current 

,並在系統偏好設置JRE的位置指向

/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin 

我沒有問題在這裏,但usr/bin/javac/usr/bin/java無法在/System/Library/Frameworks/JavaVM.framework/Versions/Current中找到正確的JVM位置。

回答

3

您需要添加一些反引號:它的標準輸出爲JAVA_HOME

export JAVA_HOME="`/usr/libexec/java_home -v 1.8`" 

/usr/libexec/java_home命令輸出正確的價值,你需要使用反引號,以捕獲值,以便可以將其存儲在變量。

但JRE是/System/Library/Frameworks/JavaVM.framework/Versions/Current

不,事實並非如此。 Oracle JRE安裝在/Library/Internet Plug-Ins之下,Oracle JDK安裝在/Library/Java/JavaVirtualMachines之下。 /usr/bin/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands下的二進制文件是存根,它們代表您的JAVA_HOME變量指向的任何JDK。

+2

是的,我這樣做,和資源的'〜/ .bash_profile'但它說 '最後登錄:週五13年1月9日:45:17 on ttys000' '無法找到與版本匹配的任何JVM「1.8」.' '沒有Java運行時存在,請嘗試 - 請求安裝.' – kromer

+1

@kromer是否確實安裝了_JDK_,而不僅僅是_JRE_ ? '/ Library/Java/JavaVirtualMachines'下有什麼嗎? –

+0

感謝您的建議,但沒有奏效 - '無法找到匹配版本的JVM「1.8」 .' '沒有Java運行時存在,嘗試--request到install.' – kromer

1

我已經嘗試了幾種解決方案,下載了幾個sdk,但Android Studio並沒有將它們識別爲有效的sdks。

最後,爲我工作的解決方法是:

  1. 刪除Android Studio.app和Android Studio的喜好(〜/庫/首選項/ AndroidStuido)。
  2. 將/ usr/libexec/java_home重命名爲java_home.bak。
  3. 再次安裝Android Stuido。
  4. 當Android Studio提示輸入有效的Java SDK時,請遵循Android Studio提供的鏈接並下載該Java安裝。
  5. 安裝完成後,在Android Studio上按下檢測按鈕,然後運行。
7

我也遇到了同樣的問題,我想你應該安裝JDK而不是JRE

+0

這解決了我的問題。謝謝 –