OS X Yosemite没有找到Java 8运行时

时间:2015-01-09 14:07:06

标签: java macos osx-yosemite

我使用此页面上的说明从Oracle Java站点安装了Java 8 SDK(JRE更新为25)

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

并在我的~/.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位置。

4 个答案:

答案 0 :(得分:7)

我遇到了同样的问题,我认为你应该安装JDK而不是JRE

答案 1 :(得分:3)

你需要添加一些反引号:

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

/usr/libexec/java_home命令在其标准输出上为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 :(得分:1)

我已经尝试了多种解决方案,下载了几个sdk,但Android Studio并没有将它们识别为有效的sdks。

最后,对我有用的解决方法是:

  1. 删除Android Studio.app和Android Studio偏好设置(〜/ Library / Preferences / AndroidStuido)。
  2. 将/ usr / libexec / java_home重命名为java_home.bak。
  3. 再次安装Android Stuido。
  4. 当Android Studio提示输入有效的Java SDK时,请按照Android Studio提供的链接下载该Java安装。
  5. 安装完成后,按Android Studio上的检测按钮,然后运行。

答案 3 :(得分:1)

这是我在Mac上解决问题的方式

  1. 通过在控制台中运行Sys.getenv("JAVA_HOME"),从RStudio中检查Java_HOME是否已正确设置。如果返回空白,则需要正确设置

  2. 检查是否已安装Java SDK

    • 打开终端并检查是否已安装Java SDK
    • 运行/usr/libexec/java_home -v命令。这将向您显示Java SDK的安装库。
  3. 如果尚未安装Java SDK,则上述命令的结果为空白,或者该版本不是最新版本,请下载here并安装最新版本。

  4. 复制步骤2中显示的库。在我的Mac上,它显示: /Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home

  5. 返回RStudio控制台,设置JAVA_HOME Sys.setenv(JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home")

完成上述步骤后,h2o.init()运行顺利。

请仔细注意@Ian Robert关于 JRE JDK 区别的观点。我们需要 JDK 来运行h2o。