【问题标题】:OS X Yosemite not finding Java 8 runtimeOS X Yosemite 找不到 Java 8 运行时
【发布时间】:2020-07-30 00:15:13
【问题描述】:

我使用此页面上的说明从 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.

还有这个窗口

我跑/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 位置。

【问题讨论】:

    标签: java macos osx-yosemite


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      你需要添加一些反引号:

      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 的存根。

      【讨论】:

      • 是的,我做到了,并为 ~/.bash_profile 提供了资源,但上面写着 Last login: Fri Jan 9 13:45:17 on ttys000 Unable to find any JVMs matching version "1.8". No Java runtime present, try --request to install.
      • @kromer 你确定安装了 JDK,而不仅仅是 JRE/Library/Java/JavaVirtualMachines下面有什么吗?
      • 感谢您的建议,但没有成功 - Unable to find any JVMs matching version "1.8". No Java runtime present, try --request to install.
      • @kromer 然后你需要download the JDK 并安装它 - 确保选择“JDK”按钮,而不是“JRE”按钮。
      • 我尝试使用的SDK工具如javacjava/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/,JVM在/System/Library/Frameworks/JavaVM.framework/Versions/Current
      【解决方案3】:

      这是我在 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 关于 JREJDK 区别的观点。我们需要 JDK 来让 h2o 运行。

      【讨论】:

        【解决方案4】:

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

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

        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 上的检测按钮,然后运行。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-22
          • 1970-01-01
          • 2014-12-31
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多