Installing Java on OS X 10.9 (Mavericks)
Asked Answered
N

11

321

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?

Nadda answered 23/10, 2013 at 5:32 Comment(9)
I don't know what problem is there in terminal but I run eclipse and all projects are compiling fine in mavericksGlossolalia
Do you see Java in the preferences ?Blase
it seems the old java launcher only support jdk 1.6 but mavericks doesn't have 1.6 installed by default.Procarp
java -version command is running fine on mavericks. It was already installed in mountain lion. and there is no java option in system preference.Glossolalia
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.Junie
This is great for Java 6, but how can you get Java 7 to work?Atc
Added a potential answer to install the Java 7 JRE and have it working in the Terminal: https://mcmap.net/q/44931/-installing-java-on-os-x-10-9-mavericksLeprosy
@Nadda You should remove the update part of the question and select the correct answer as accepted instead.Quintuplet
It is incredible to me that what claims to be a modern operating system needs so much hand-holding.Quiles
J
277

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.

Jacquetta answered 23/10, 2013 at 7:18 Comment(10)
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.Paschasia
but this one gives you JDK 6. how can we use JDK 6 directly?Procarp
@Procarp 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.Jacquetta
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/HomeThumbscrew
If you want header files for compiling JNI modules or want to have the javadocs, you would need to download and install "Java for OS X 2013-005 Developer Package" from developer.apple.com/downloads/index.actionOvertire
@mtomy 32-bit on OS X 10.9? don't think so. They might only include the 64 bit version. see: docs.oracle.com/javase/7/docs/webnotes/install/mac/…Jacquetta
Why would you want to use 32 bit java on a 64bit OS? 64 bit java is actually faster than 32bit under Mavericks.Dejection
The link they direct you to in the popup doesn't work but this one does. Mind. Blown.Atrabilious
Hope apple dont remove the java 6 version, need that for some legacy apps that dont work well with newer JVMs due to reliance on sun java classes (that should not be used but need to for some obscure reason)Fissirostral
Also see HT202912, About Java for OS X 2014-001" "This article is about older, unsupported Java software. Download the latest version of Java for OS X directly from Oracle." The older version its discussing is Java for OS X 2014-001. Are you sure your answer applies to Mavericks?Burress
L
197

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.

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
Leprosy answered 25/10, 2013 at 6:34 Comment(11)
For Maverics Update the the file is at ~/.bash_profile. Once that is updated with the path above - restart your terminal to see your changes.Bersagliere
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/….Vedetta
@Vedetta - 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 likeUnaccountable
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"Marketa
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.Dejection
I am talking about the JRE here, not the JDKLeprosy
@Leprosy Correct but the OP is asking about the JDKAfraid
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.Romie
@Vedetta Doesn't detect JRE8 anymore.Biomass
where is it installed?Instrumental
How do I give you money? Thank you. This is exactly what I needed.Billow
B
64

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.

Blearyeyed answered 1/11, 2013 at 23:53 Comment(10)
See my comment to another answer for what is perhaps a better way to get that path.Vedetta
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. RonaldGarlan
@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.Blearyeyed
@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.Garlan
Edited - but not actually sure that the re-ordering really happens: they all seem to be where they were, regardless of upvotes. NVMBlearyeyed
If you instead set JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home" then it will still be correct if/when you upgrade your JDK.Lapidary
@Peter - I'm not sure that that would work (in fact, I'm almost sure it won't): it assumes that the "insane maze of hyperlinks" is correctly set, and, as I mentioned, life is too short...Blearyeyed
@Marco, it does work (or my installation would be broken, which it isn't) and we are actually talking about symbolic file links, not hyperlinks.Lapidary
Intellij 13 CE runs fine on Oracle jdk7u46 64bit on my OS X Mavericks 10.9.1 machine. I don't have java 6 installed and did not have to do any hacking to get this to work. Some older apps with java 6 library dependencies doesn't work, but java development (Eclipse) is significantly faster and better than on jdk 6. If you're a developer use jdk7 and upgrade your code base if needed.Dejection
Eclipse brings its own compiler and can run on a JRE. Netbeans and Idea require a full JDK.Equiponderance
S
14

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.

Slam answered 1/11, 2013 at 14:55 Comment(6)
I need to use ln -snf because I got Operation not permitted with ln -sfSkees
Thx, I edited the answer and added the -n option to the ln command.Slam
+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.Garlan
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.Shortcircuit
You need a 64-bit version of Eclipse. The 32-bit requires Apple java.Equiponderance
@Mr.Ronald For me after /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents the paths do not exist, is that normal? do I proceed anyways?Denizen
C
4

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>
Cammack answered 26/7, 2014 at 7:48 Comment(3)
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.Folklore
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).Intranuclear
Did you check if JAVA_HOME is set?Cammack
I
3

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:

enter image description here

Illuminator answered 24/10, 2013 at 2:46 Comment(0)
J
3

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

Junie answered 25/10, 2013 at 0:29 Comment(2)
We should not assume that Apple's current distribution of Java 6 is unsupported.Fiend
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.Junie
S
3

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)

Spada answered 11/8, 2014 at 13:58 Comment(0)
E
1

From the OP:

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

Epicureanism answered 2/1, 2014 at 8:13 Comment(0)
H
1

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.

Holotype answered 18/6, 2017 at 14:8 Comment(0)
T
0

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

Trengganu answered 23/10, 2013 at 17:26 Comment(1)
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.Paschasia

© 2022 - 2024 — McMap. All rights reserved.