我在Mac OS X v10.8 (Mountain Lion)上安装了JDK。当我将其升级到Mac OS X v10.9 (Mavericks)并在终端中运行java -version时,它显示:

没有Java运行时,请求安装。

然后我手动在我的Mac上安装了JDK(1.7)。看起来安装工作正常。安装完成后,我打开终端并输入java -version。它还显示了同样的错误:

没有Java运行时,请求安装。

我该如何解决这个问题呢?


当前回答

下载Java 7 JDK的正确位置是Java SE Downloads。

据我所知,上面提供的所有其他链接都提供了JRE或Java 6下载(顺便说一下,如果您想运行Eclipse或其他ide,如IntelliJ IDEA,您将需要JDK,而不是JRE)。

关于IntelliJ IDEA,它仍然会要求你安装Java 6,因为它显然需要一个较旧的类加载器或其他东西:当弹出对话框出现时,只需按照说明安装JDK 6,它会在正确的位置安装JDK 6。

之后,你需要做上面答案中提到的sudo ln -snf:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents \
    /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

(复制在这里,因为提到“以上”可能最终没有意义,因为答案是重新排序的)。

我还将JAVA_HOME设置为指向jdk_1.7.0_xx的位置。安装JDK:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"

然后把它添加到你的PATH:

export PATH=$JAVA_HOME/bin:$PATH

另一种选择是在苹果疯狂的超链接迷宫中闲逛,但说实话,生命太短暂了。

其他回答

新的Mavericks(10.9)向我显示了“请求安装”,但什么都没有发生。

解决方案是手动下载并安装OS X的官方Java包,这是Java for OS X 2013-005。

更新:正如下面评论中提到的,这个包有一个更新的版本:

Java for OS X 2014-001

Java for OS X 2014-001(更正上面的死线)

Java for OS X 2014-001包括安装改进,并取代所有以前版本的Java for OS X。此包安装Java for OS X 2013-005中包含的相同版本的Java 6。

OP意味着Java 7是需要的。Java 6实际上已经不再被“支持”了,所以你现在应该安装7版本,除非你有遗留的应用程序问题。

你可以在这里买到: http://java.com/en/download/mac_download.jsp?locale=en

我在OS X 10.9上更新Java SDK的经验要容易得多。

我从SE下载下载了最新的Java SE开发工具包8,并安装了.dmg文件。当在终端中输入java -version时,显示如下:

Java版本1.8.0_11 Java(TM) SE运行时环境(build 1.8.0_11-b12) Java HotSpot(TM) 64位服务器虚拟机(build 25.11-b03,混合模式)

如果您只想从Oracle安装最新的官方JRE,可以从Oracle获取、安装并在终端中导出新的JAVA_HOME。

打开终端机 Java -version给出一个错误和一个弹出窗口 在http://www.oracle.com/technetwork/java/javase/downloads/index.html上获取JRE dmg 安装它 在你的终端中,输入export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home" Java -version现在给你Java版本“1.7.0_45”

这是我发现的安装最新JRE的最干净的方法。

你可以在你的.bashrc中添加export JAVA_HOME行,让java永久地存在于你的终端中:

echo export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\" >> ~/.bashrc

发生此错误是因为IntelliJ IDEA的plist文件需要Java 1.6*版本。要解决这个问题,请将1.6*替换为1.8*。

<key>JVMOptions</key>
<dict>
    <key>ClassPath</key>
      ...

    <key>JVMVersion</key>
    <string>1.8*</string>

    <key>MainClass</key>
    <string>com.intellij.idea.Main</string>
    <key>Properties</key>
<dict>