ChatGPT解决这个技术问题 Extra ChatGPT

Installing Java on OS X 10.9 (Mavericks)

I have installed the JDK on Mac OS X v10.8 (Mountain Lion). When I upgraded it to Mac OS X v10.9 (Mavericks) and ran java -version in the terminal, it showed:

No Java runtime present, requesting install.

Then I manually installed the JDK (1.7) on my Mac. It seems that the installation worked fine. When the installation was done, I opened the terminal and typed java -version as well. It also showed the same error:

No Java runtime present, requesting install.

How can I solve this problem?

I don't know what problem is there in terminal but I run eclipse and all projects are compiling fine in mavericks
it seems the old java launcher only support jdk 1.6 but mavericks doesn't have 1.6 installed by default.
You installed java 6, not java 7 as OP originally implied they needed. I am interested in how that solution is reached. Also there must be an 'alternatives' kind of approach here that directly addresses the feedback from the terminal.
This is great for Java 6, but how can you get Java 7 to work?
Added a potential answer to install the Java 7 JRE and have it working in the Terminal: stackoverflow.com/a/19582689/346286

G
Gray

The new Mavericks (10.9) showed me the "Requesting install", but nothing happened.

The solution was to manually download and install the official Java package for OS X, which is in Java for OS X 2013-005.

Update: As mentioned in the comments below, there is a newer version of this same package:

Java for OS X 2014-001

Java for OS X 2014-001 (Correcting dead line above)

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.


Same for me. Another choice is to install Java from Oracle. Which one do you guys think is better? Oracle seems to have Java updated more quickly than Apple.
but this one gives you JDK 6. how can we use JDK 6 directly?
@Shawn Apple disables already installed JDK 7. But you can get some FAQ and install from here: java.com/en/download/faq/java_mac.xml but i did not try it out.
If you have installed both java6 and java7, you can select v6 in your shell with: export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Why would you want to use 32 bit java on a 64bit OS? 64 bit java is actually faster than 32bit under Mavericks.
a
analogue

If you only want to install the latest official JRE from Oracle, you can get it there, install it, and export the new JAVA_HOME in the terminal.

Open your Terminal

java -version gives you an error and a popup

Get the JRE dmg on http://www.oracle.com/technetwork/java/javase/downloads/index.html

Install it

In your terminal, type: export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"

java -version now gives you java version "1.7.0_45"

That's the cleanest way I found to install the latest JRE.

You can add the export JAVA_HOME line in your .bashrc to have java permanently in your Terminal:

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

I think it sounds a little fishy to define JAVA_HOME to point at what is clearly a browser plugin instead of the real VM. When you install the XCode command line tools, you get a tool for getting the correct path, /usr/libexec/java_home. See developer.apple.com/library/mac/documentation/Darwin/Reference/….
@Ilkka - it does sound fishy, but that's actually where Oracle's JRE installs to. Apple's java (which stops at java 6) doesn't mix with oracle's quite as nicely as one might like
A colleague of mine (who unfortunately does not have the required reputation here to add comments) wants to add that the JAVA_HOME setting should be export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"
I installed jdk7u45 from Oracle and still use export JAVA_HOME=$(/usr/libexec/java_home) in my bash profile. jdk7u45 works very nicely including the java system preference panel. Now I'm upgrading to jdk7u51.
I had to add export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home" to ~/.profile instead of ~/.bashrc or ~/.bash_profile to get this work.
M
Marco Massenzio

The right place to download the JDK for Java 7 is Java SE Downloads.

All the other links provided above, as far as I can tell, either provide the JRE or Java 6 downloads (incidentally, if you want to run Eclipse or other IDEs, like IntelliJ IDEA, you will need the JDK, not the JRE).

Regarding IntelliJ IDEA - that will still ask you to install Java 6 as it apparently needs an older class loader or something: just follow the instructions when the dialog pop-up appears and it will install the JDK 6 in the right place.

Afterwards, you will need to do the sudo ln -snf mentioned in the answer above:

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

(copied here as it was mentioned that "above" may eventually not make sense as answers are re-sorted).

I also set my JAVA_HOME to point to where jdk_1.7.0_xx.jdk was installed:

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

Then add that to your PATH:

export PATH=$JAVA_HOME/bin:$PATH

The alternative is to fuzz around with Apple's insane maze of hyperlinks, but honestly life is too short to bother.


See my comment to another answer for what is perhaps a better way to get that path.
Since this answer has more upvotes, the bit that says sudo ln -snf in the answer above is not accurate anymore. That is actually referring to the answer by Mr. Ronald
@KarthicRaghupathi I'm not sure I fully understand the comment (the use of this and that is somewhat confusing) but you still need a symlink from the /Sytem/Library/etc place to the actual place where Oracle installs the JVM (/Library/etc.) or applications will be unable to find the Java runtime.
@Marco Now that you mention it, when I read my own comment, it does not really make much sense. :) Allow me to clarify. In your answer, you write "Afterwards, you will need to do the sudo ln -snf mentioned in the answer above;". Answers move up or down based on the number of up votes they get. My intention was to only provide a direct reference to the answer that had the sudo ln -snf command.
Edited - but not actually sure that the re-ordering really happens: they all seem to be where they were, regardless of upvotes. NVM
M
Mr. Ronald

I downloaded and installed the JDK 1.7 from Oracle. In the console / in Terminal Java 7 works fine.

When I start a Java program (like Eclipse) via the GUI, I get:

To open "Eclipse.app" you need a Java SE 6 runtime. Would you like to install one now?

Because I did not want to install old Java version, I used the following workaround:

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

Credits to monkehWorks.


I need to use ln -snf because I got Operation not permitted with ln -sf
Thx, I edited the answer and added the -n option to the ln command.
+1 Exactly what I was looking for. Thanks! The CLI was getting the reference to JDK 7 after installation. However for getting the GUI apps to pickup the correct JDK this step was necessary.
Was hopeful, but it didn't work for me. Android Studio 0.3.2 insists on "downloading Java 6" which I'm not going to do. Oracle Java 7 JDK is installed.
You need a 64-bit version of Eclipse. The 32-bit requires Apple java.
P
Peter Mortensen

This error happens because the plist file of IntelliJ IDEA requires Java version 1.6*. To solve this problem, replace the 1.6* with 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>

This did it for me. My problem was when I updated to osx 10.9, I could still access java from the terminal and everything else (including eclipse worked fine). Only Android Studio was causing this error.
This didn't work for me on OS X 10.10.1, it complains that no version 1.8 is available (even if the JRE 8 is properly installed).
Did you check if JAVA_HOME is set?
R
Rondo

The OP implied that Java 7 was the need. And Java 6 is in fact no longer being 'supported' so 7 is the version you should be installing at this point unless you have legacy app concerns.

You can get it here: http://java.com/en/download/mac_download.jsp?locale=en


We should not assume that Apple's current distribution of Java 6 is unsupported.
I placed the word 'supported' in quotes so as to avoid trying to tease out a complicated issue. Oracle charges for any support of 6... and that support charge would logically apply to Apple, as well; so, Apple is 'on its own' without a contract. Do they have one, and plan to work thru the patches for MacOSX? Does the contract still allow for re-distribution? Now there have been 2 Java 7 updates from Oracle since Apple's last update to 6. Historically, they tend to lock-step releases. Assumption, perhaps; A safe assumption? Seems so.
C
Community

My experience for updating Java SDK on OS X 10.9 was much easier.

I downloaded the latest Java SE Development Kit 8, from SE downloads and installed the .dmg file. And when typing java -version in terminal the following was displayed:

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)


j
jww

I downloaded manually to here: Java for OS X 2014-001.

After that open your terminal and check the installation with java -version.

EDIT (January, 2015): Also see HT202912, About Java for OS X 2014-001:

https://i.stack.imgur.com/LUVkY.png


E
Eric Leschinski

From the OP:

I finally reinstalled it from Java for OS X 2013-005. It solved this issue.


s
sapy

This error means Java is not properly installed .

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 - What is brew-cask ? Homebrew-Cask extends Homebrew , and solves the hassle of executing an extra command - “To install, drag this icon…” after installing a Application using Homebrew.

N.B - This problem is not specific to Mavericks , you will get it almost all the OS X, including EL Capitan.


P
Peter Mortensen

There isn't any need to install the JDK, which is the developer kit, just the JRE which is the runtime environment.


That's true. However, what Apple provide is the JDK and the JRE from Oracle is just there for the Internet Plugin, the java command is not linked system-wide automatically so you still see the "No Java runtime present, requesting install." when you type java -version in the Terminal.