3

Just got a brand new MacBook Air which shipped with Mountain Lion 10.8.4 and no Java installed. There is a /usr/bin/java, but running it would prompt me to install an Apple-distributed Java 6 runtime in a Cocoa dialog.

However, Oracle is no longer supporting Java 6, and I don't want to be running an unsupported and probably insecure Java installation.

So, I went to Oracle's Java SE downloads and installed the latest JDK, jdk-7u25-macosx-x64. Now the only Java I have on this machine is 1.7.0_25, distributed by Oracle. /usr/bin/java -version now works.

I just ran brew cask install eclipse, and ended up with Eclipse 4.3. When I first tried to run it, I got the same prompt to install a Java runtime as if I had no Java installed.

So I looked here on Apple StackExchange and found https://apple.stackexchange.com/a/58841/52440. After running sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk /System/Library/Java/JavaVirtualMachines/1.6.0.jdk, I'm now able to launch Eclipse.

However, when I try to launch other apps that require Java, such as /usr/share/java/Tools/Java VisualVM.app and /opt/homebrew-cask/Caskroom/webstorm/6.0.2a/WebStorm.app, I get an error that no compatible Java 1.6 is available (see below).

screenshot of error dialog

Does anyone know if it's possible to get these other apps working, or do they really actually require Java 6 and can't work with Java 7?

  • 1
    Don't link non Apple code to an Apple controlled place. For eclipse see other questions. Java Vuual VM I suspect is toed to the VM and as in an Apple area needs an Apple VM. – user151019 Jan 29 '14 at 10:26
  • Java 6 is still supported and Apple provide upgrades. Think of Java 6 and 7 as two separate languages and not an upgrade – user151019 Jan 29 '14 at 11:45
3

The dialog is shown because Oracle's Java has only partial 'JVMCapabilities' set and advertises itself as command-line-only capable.

As a superuser (use 'sudo' if editing in Terminal), you should edit /Library/Java/JavaVirtualMachines/jdk.1.7.[version-and-release].jdk/Contents/Info.plist and find the following key:

<key>JVMCapabilities</key>
  <array>
    <string>CommandLine</string>
  </array>

and add it to include the missing values:

<key>JVMCapabilities</key>
  <array>
    <string>CommandLine</string>
    <string>JNI</string>
    <string>BundledApp</string>
  </array>

After that, you have to either reboot, logout or killall Finder, what ever seems to work. (People have reported that restarting Finder was enough, but I had to log out.)

--
Source.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .