有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

macos OS X Yosemite找不到Java 8运行时

我使用本页上的说明从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位置


共 (4) 个答案

  1. # 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

  2. # 2 楼答案

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

  3. # 3 楼答案

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

    最后,对我有效的解决办法是:

    1. 删除Android Studio。应用程序和Android Studio首选项(~/Library/preferences/AndroidStuido)
    2. 将/usr/libexec/java_home重命名为java_home。贝克
    3. 再次安装Android Stuido
    4. 当Android Studio提示输入有效的Java SDK时,请遵循Android Studio提供的链接并下载该Java安装
    5. 安装完成后,按下Android Studio上的检测按钮,然后运行
  4. # 4 楼答案

    您需要添加一些反勾号:

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

    /usr/libexec/java_home命令在其标准输出上为JAVA_HOME输出正确的值,您需要使用backticks来捕获该值,以便将其存储在变量中

    But the JRE is in /System/Library/Frameworks/JavaVM.framework/Versions/Current

    不,不是。OracleJRE安装在/Library/Internet Plug-Ins下,OracleJDK安装在/Library/Java/JavaVirtualMachines下。/usr/bin/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands下的二进制文件是存根,委托给JAVA_HOME变量所指向的JDK