java -version
时,显示:
然后我在我的Mac上手动安装了JDK(1.7)。看起来安装成功了。当安装完成后,我打开终端并键入没有Java运行时环境,请请求安装。
java -version
。它仍然显示相同的错误:
我该如何解决这个问题?没有Java运行时环境,请请求安装。
java -version
时,显示:
然后我在我的Mac上手动安装了JDK(1.7)。看起来安装成功了。当安装完成后,我打开终端并键入没有Java运行时环境,请请求安装。
java -version
。它仍然显示相同的错误:
我该如何解决这个问题?没有Java运行时环境,请请求安装。
新的Mavericks(10.9)显示了“请求安装”,但没有任何反应。
解决方案是手动下载并安装官方的Java套件,即在Java for OS X 2013-005中找到。
更新: 如下方评论所述,此同一套件有一个更新版本:
Java for OS X 2014-001(更正上面的错误链接)
Java for OS X 2014-001包括安装改进,并取代了以前所有版本的Java for OS X。该套件安装与Java for OS X 2013-005中相同版本的Java 6。
java -version
会给您一个错误和弹出窗口export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"
java -version
现在会给您java version "1.7.0_45"
这是我发现安装最新JRE的最干净的方法。
您可以将export JAVA_HOME
行添加到您的.bashrc
中,以使java
永久存在于您的终端中:
echo export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\" >> ~/.bashrc
JAVA_HOME
定义为指向明显是浏览器插件而不是真正的虚拟机有些可疑。当你安装XCode命令行工具时,会获得获取正确路径的工具/usr/libexec/java_home
。请参见https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/java_home.1.html。 - Ilkkaexport JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"
。 - Stephan Windmüllerexport JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"
添加到 ~/.profile 而不是 ~/.bashrc 或者 ~/.bash_profile 才能使其工作。 - LarS下载Java 7 JDK的正确位置是Java SE Downloads。
根据我所了解的情况,上面提供的所有其他链接都提供JRE或Java 6下载(顺便说一句,如果您想运行Eclipse或其他IDE,如IntelliJ IDEA,则需要JDK,而不是 JRE)。
关于IntelliJ IDEA - 它仍会要求您安装Java 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
另一种选择是在苹果那疯狂的超链接迷宫中四处摸索,但老实说,生命太短暂了,无需麻烦。
我从Oracle下载并安装了JDK 1.7。在控制台/ 终端中,Java 7可以正常工作。
当我通过GUI启动Java程序(如Eclipse)时,会弹出以下提示:
要打开"Eclipse.app",需要Java SE 6运行时。您现在想要安装吗?
因为我不想安装旧的Java版本,所以使用了以下解决方法:
sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
感谢monkehWorks。
ln -snf
,因为我在使用 ln -sf
时遇到了 Operation not permitted
的错误。 - Lars Blumberg/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents
之后的路径不存在,这正常吗?我继续进行吗? - tatsu这个错误是因为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>
java-version
命令检查安装情况。
编辑(2015年1月):还请参阅HT202912有关于OS X 2014-001版的Java:
这位用户暗示需要使用Java 7。实际上,Java 6已经不再得到“支持”,所以除非您有遗留应用的问题,否则此时您应该安装版本7。
您可以在此处获取它: http://java.com/en/download/mac_download.jsp?locale=en
在 OS X 10.9 上更新 Java SDK 的经验要容易得多。
我从SE下载中下载了最新的Java SE Development Kit 8
,并安装了 .dmg 文件。在终端输入 java -version
后显示如下:
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
1) brew cask install java (No need to install cask separately it comes with brew)
2) java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
P.S - 什么是brew-cask?Homebrew-Cask是Homebrew的扩展,解决了使用Homebrew安装应用程序后执行额外命令“拖动此图标进行安装”的麻烦。
N.B - 这个问题不是特定于Mavericks,你几乎会在所有OS X中遇到,包括EL Capitan。
原文来自OP:
我最终从Java for OS X 2013-005重新安装了它。这解决了这个问题。