我使用此页面上的说明从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位置。
答案 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。
最后,对我有用的解决方法是:
答案 3 :(得分:1)
这是我在Mac上解决问题的方式
通过在控制台中运行Sys.getenv("JAVA_HOME")
,从RStudio中检查Java_HOME是否已正确设置。如果返回空白,则需要正确设置
检查是否已安装Java SDK
/usr/libexec/java_home -v
命令。这将向您显示Java SDK的安装库。 如果尚未安装Java SDK,则上述命令的结果为空白,或者该版本不是最新版本,请下载here并安装最新版本。
复制步骤2中显示的库。在我的Mac上,它显示:
/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home
返回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。