我在MacOSXv10.8(Mountain Lion)上安装了JDK。 当我将其升级到MacOSXv10.9(Mavericks)并在终端中运行java -version时,它显示:
No Java runtime present, requesting install.
然后我在Mac上手动安装了JDK(1.7)。 似乎安装工作正常。 安装完成后,我打开终端并输入java -version。 它也显示了同样的错误:
No Java runtime present, requesting install.
我怎么解决这个问题?
-
我不知道终端有什么问题但我运行eclipse并且所有项目都在小牛队中编译得很好
-
你在偏好中看到Java吗?
-
似乎旧的java启动程序仅支持jdk 1.6,但默认情况下,小牛队没有安装1.6。
-
java -version命令在小牛队上正常运行。它已经安装在山狮中。并且系统首选项中没有java选项。
-
你安装了java 6,而不是java 7,因为OP原本暗示他们需要。我对如何达成解决方案感兴趣。此外,必须有一种"替代"方法,直接解决来自终端的反馈。
-
这对Java 6很有用,但是如何让Java 7工作?
-
添加了安装Java 7 JRE的可能答案并让它在终端中运行:stackoverflow.com/a/19582689/346286
-
@ user2909913您应该删除问题的更新部分,然后选择正确的答案。
-
对我来说,自称是现代操作系统的东西需要如此多的手持,这真是令人难以置信。
新的小牛队(10.9)向我展示了"请求安装",但没有任何反应。
解决方案是手动下载并安装适用于OSX的官方Java软件包,该软件包位于 Java for OS X 2013-005 del>中。
更新:如下面的评论中所述,此相同的软件包有更新版本:
Java for OS X 2014-001 del>
适用于OS X 2014-001的Java(纠正上面的死线)
Java for OS X 2014-001 includes installation improvements, and supersedes all previous versions of Java for OS X. This package installs the same version of Java 6 included in Java for OS X 2013-005.
-
我也是。另一种选择是从Oracle安装Java。你认为哪一个更好? Oracle似乎比Apple更新了Java。
-
但是这个给你JDK 6.我们怎么能直接使用JDK 6?
-
@Shawn Apple禁用已经安装的JDK 7.但是你可以从这里获得一些FAQ并安装:java.com/en/download/faq/java_mac.xml但是我没试过。
-
如果您同时安装了java6和java7,则可以在shell中选择v6:export JAVA_HOME = / System / Library / Java / JavaVirtualMachines / 1.6.0.jdk / Contents / Home
-
如果您需要头文件来编译JNI模块或想要拥有javadoc,则需要从developer.apple.com/downloads/index.action下载并安装"Java for OS X 2013-005 Developer Package"。
-
Mac OS X 10.9是否有32位或通用JDK 7?
-
在OS X 10.9上@momy 32位?不这么认为。它们可能只包含64位版本。请参阅:docs.oracle.com/javase/7/docs/webnotes/install/mac/
-
为什么要在64位操作系统上使用32位java?在Mavericks下,64位java实际上比32位快。
-
新版本(2014-001):support.apple.com/kb/dl1572
-
他们在弹出窗口中指向您的链接不起作用,但这个链接。心神。吹。
-
希望苹果不要删除java 6版本,需要一些遗留应用程序,因为依赖于sun java类而不能使用较新的JVM(不应该使用但需要出于某些不明原因)
-
另请参阅HT202912,关于Java for OS X 2014-001""这篇文章是关于较旧的,不受支持的Java软件。直接从Oracle下载最新版本的OS for OS。"它讨论的旧版本是Java for OS X 2014-001。你确定你的答案适用于Mavericks吗?
-
对我有用,谢谢!
如果您只想从Oracle安装最新的官方JRE,您可以在那里安装它,安装它,并在终端中导出新的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 version"1.7.0_45"
这是我发现安装最新JRE最干净的方法。
您可以在.bashrc中添加export JAVA_HOME行,使java永久保留在终端中:
1
| echo export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home">> ~/.bashrc |
-
对于Maverics Update,文件位于?/ .bash_profile。使用上述路径更新后 - 重新启动终端以查看更改。
-
无需重启终端,请使用source ~/.bash_profile
-
我认为定义JAVA_HOME指向显然是浏览器插件而不是真正的VM听起来有点可疑。安装XCode命令行工具时,您将获得一个用于获取正确路径/usr/libexec/java_home的工具。请参阅developer.apple.com/library/mac/documentation/Darwin/Reference/。
-
@Ilkka - 听起来确实很糟糕,但这实际上是甲骨文JRE安装的地方。 Apple的java(在java 6中停止)并不像人们想象的那样与oracle混合
-
我的一位同事(遗憾的是,这里没有必要的声誉来添加评论)想要添加JAVA_HOME设置export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"
-
我从Oracle安装了jdk7u45,仍在我的bash配置文件中使用export JAVA_HOME = $(/ usr / libexec / java_home)。 jdk7u45非常好用,包括java系统首选项面板。现在我升级到jdk7u51。
-
我在这里谈的是JRE,而不是JDK
-
@analogue正确,但OP询问JDK
-
你救了我的命 :)
-
我必须将export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"添加到?/ .profile而不是?/ .bashrc或?/ .bash_profile才能完成这项工作。
-
也可以通过homebrew jenv.be看看jenv
-
@Ilkka不再检测JRE8。
-
在哪里安装?
-
我怎么给你钱?谢谢。这正是我所需要的。
下载JDK for Java 7的正确位置是Java SE下载。
据我所知,上面提供的所有其他链接都提供了JRE或Java 6下载(顺便说一下,如果你想运行Eclipse或其他IDE,比如IntelliJ IDEA,你将需要JDK,而不是JRE)。
关于IntelliJ IDEA - 它仍然会要求你安装Java 6,因为它显然需要一个较旧的类加载器或者其他东西:只需在出现对话框弹出窗口时按照说明操作,它就会在正确的位置安装JDK 6。
之后,您需要执行上面答案中提到的sudo ln -snf:
1 2
| 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的安装位置:
1
| export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home" |
然后将其添加到PATH:
1
| export PATH=$JAVA_HOME/bin:$PATH |
另一种方法是用苹果疯狂的迷你超级链接来解决问题,但说实话,生活太短暂而无法理解。
-
请参阅我对其他答案的评论,了解可能是获得该途径的更好方法。
-
由于这个答案有更多的支持,在上面的答案中说sudo ln -snf的位不再准确。这实际上是指罗纳德先生的答案
-
@KarthicRaghupathi我不确定我是否完全理解这个注释(使用this和that有些令人困惑)但是你仍然需要一个从/ Sytem / Library / etc位置到Oracle安装的实际位置的符号链接JVM(/ Library / etc.)或应用程序将无法找到Java运行时。
-
@Marco既然你提到它,当我读到自己的评论时,它并没有多大意义。 :)请允许我澄清一下。在你的回答中,你写了"之后,你需要做上面答案中提到的sudo ln -snf;"。答案根据他们获得的票数增加或减少。我的意图是只提供对具有sudo ln -snf命令的答案的直接引用。
-
编辑 - 但实际上并不确定重新排序真的发生了:他们似乎都在他们所在的地方,无论赞成票。 NVM
-
如果您改为设置JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home",那么在升级JDK时它仍然是正确的。
-
@Peter - 我不确定那会起作用(事实上,我几乎肯定不会这样):它假设"疯狂迷宫的超链接"被正确设置,并且,正如我所提到的,生活也是如此短...
-
@Marco,它确实有效(或者我的安装会被破坏,但事实并非如此)我们实际上是在谈论符号文件链接,而不是超链接。
-
Intellij 13 CE在我的OS X Mavericks 10.9.1机器上运行Oracle jdk7u46 64bit。我没有安装java 6,也没有做任何黑客攻击来实现这一点。一些具有java 6库依赖性的旧应用程序不起作用,但是Java开发(Eclipse)比jdk 6更快更好。如果您是开发人员,请使用jdk7并在需要时升级您的代码库。
-
Eclipse带来了自己的编译器,可以在JRE上运行。 Netbeans和Idea需要完整的JDK。
我从Oracle下载并安装了JDK 1.7。在控制台/终端Java 7工作正常。
当我通过GUI启动Java程序(如Eclipse)时,我得到:
To open"Eclipse.app" you need a Java SE 6 runtime. Would you like to
install one now?
因为我不想安装旧的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
-
谢谢,我编辑了答案,并在ln命令中添加了-n选项。
-
+1正是我想要的。谢谢! CLI在安装后获得了对JDK 7的引用。但是,为了使GUI应用程序能够拾取正确的JDK,这一步是必要的。
-
有希望,但它对我不起作用。 Android Studio 0.3.2坚持"下载Java 6",我不打算这样做。安装了Oracle Java 7 JDK。
-
在哪里安装? java 8?我想添加它eclipse ...
-
你回答的是什么问题?这与上述问题无关。
-
您需要64位版本的Eclipse。 32位需要Apple java。
-
@ Mr.Ronald对于我/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents之后的路径不存在,这是正常的吗?我还是继续吗?
发生此错误的原因是IntelliJ IDEA的plist文件需要Java版本1.6 *。要解决此问题,请将1.6 *替换为1.8 *。
1 2 3 4 5 6 7 8 9 10 11 12
| <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> |
-
这样做对我来说。 我的问题是当我更新到osx 10.9时,我仍然可以从终端访问java和其他一切(包括eclipse工作正常)。 只有Android Studio导致此错误。
-
这在OS X 10.10.1上对我不起作用,它抱怨没有1.8版本可用(即使JRE 8已正确安装)。
-
你有没有检查JAVA_HOME是否已设定?
-
你回答的是什么问题? 这与上述问题无关。
我在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)
OP意味着需要Java 7。事实上,Java 6不再受"支持",因此除非您有遗留的应用程序问题,否则7应该是您应该安装的版本。
你可以在这里得到它:
http://java.com/en/download/mac_download.jsp?locale=en
-
我们不应该假设Apple目前的Java 6发行版不受支持。
-
我在引号中加上"支持"这个词,以避免试图弄清楚一个复杂的问题。甲骨文收取6美元的任何支持费用,并且该支持费用在逻辑上也适用于Apple;因此,Apple没有合同就"独立"。他们有一个,并计划通过MacOSX的补丁工作?合同是否仍然允许重新分配?自从Apple上次更新到6以来,Oracle已经发布了2次Java 7更新。从历史上看,它们倾向于锁定步骤版本。也许是假设;一个安全的假设?似乎如此。
我手动下载到这里:Java for OS X 2014-001。
之后打开终端并使用java -version检查安装。
编辑(2015年1月):另见HT202912,关于Java for OS X 2014-001:
此错误意味着未正确安装Java。
1 2 3 4 5 6
| 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 - 什么是酿酒桶? Homebrew-Cask扩展了Homebrew,解决了使用Homebrew安装应用程序后执行额外命令 -"安装,拖动此图标......"的麻烦。
N.B - 这个问题并不是针对小牛队的,你会得到几乎所有的OS X,包括EL Capitan。
来自OP:
我终于从Java for OS X 2013-005重新安装了它。它解决了这个问题。
没有必要安装JDK,它是开发人员工具包,只是安装运行时环境的JRE。
-
确实如此。但是,Apple提供的是JDK,而Oracle的JRE就是Internet插件,java命令没有自动链接到系统范围,所以你仍然可以看到"没有Java运行时,请求安装"。在终端中键入java -version时。