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

kro*_*mer 10 java macos osx-yosemite

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

http://docs.oracle.com/javase/8/docs/technotes/guides/install/mac_jdk.html
Run Code Online (Sandbox Code Playgroud)

并把以下一行放在我的 ~/.bash_profile

export JAVA_HOME="/usr/libexec/java_home -v 1.8"
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在Bash中编译或运行Java程序时,我收到以下消息

No Java runtime present, requesting install.
Run Code Online (Sandbox Code Playgroud)

和这个窗口

![enter image description here][1]
Run Code Online (Sandbox Code Playgroud)

我跑去/usr/libexec/java_home检查:

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

但是JRE在

/System/Library/Frameworks/JavaVM.framework/Versions/Current
Run Code Online (Sandbox Code Playgroud)

并且系统偏好设置中的JRE位置指向

/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin
Run Code Online (Sandbox Code Playgroud)

我做的问题是在这里没有什么,但usr/bin/javac/usr/bin/java不能找到正确的JVM的位置/System/Library/Frameworks/JavaVM.framework/Versions/Current.

tao*_*tao 7

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


Ian*_*rts 2

您需要添加一些反引号:

export JAVA_HOME="`/usr/libexec/java_home -v 1.8`"
Run Code Online (Sandbox Code Playgroud)

/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` 提供了资源,但它显示“上次登录:ttys000 上的 1 月 9 日星期五 13:45:17”“无法找到任何与版本“1.8”匹配的 JVM。”“不存在 Java 运行时,尝试--请求安装。` (2认同)