Java SE 8 on Mac OS X

I tried running an app that requires Java, but received an alert saying “you need a Java SE 6 runtime. Would you like to install one now?”

I did not want to install an old version of Java, but it turns out the latest release doesn’t work out of the box.

Update Oct 2015

El Capitan has been released, and some things have changed. I’ve created a new post with instructions for installing just the JRE, which should be fine for most users. I also created a new post with instructions for installing the JDK which is slightly simpler, but contains unnecessary files for users not doing Java software development.


I went to the Oracle Java downloads page and downloaded JDK 8 (it is possible to install the JRE, but not with the installer provided by Oracle). The installation process is straight forward, and I confirmed Java SE 8 was installed correctly, but I still received the alert. Note that the version referenced throughout this post (1.8.0_45) may not be current as you are reading this. You may need to update the version numbers to match the latest Java release.

$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

I found the answer on StackOverflow, apparently Java isn’t letting OS X know that it can open bundled apps. The solution is to edit /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Info.plist and change:

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

To:

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

This got rid of the alert, but despite being able to successfully run my jar from the command line, my app didn’t start. I then tried opening the app from Terminal by running the Java application loader included in my app:

$ MyApp.app/Contents/MacOS/JavaApplicationStub
JavaVM: Failed to load JVM: /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bundle/Libraries/libserver.dylib
JavaVM: Failed to load JVM: /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bundle/Libraries/libserver.dylib
JavaVM FATAL: Failed to load the jvm library.
[JavaAppLauncher Error] JNI_CreateJavaVM() failed, error: -1

The file libserver.dylib didn’t exist, so after finding the answer on Google Code (which happened to also address the previous issue), I created the directories and created a link to libjvm.dylib with the following commands. Enter your password if/when prompted.

sudo mkdir -p /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bundle/Libraries
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/server/libjvm.dylib /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bundle/Libraries/libserver.dylib

The app can now be opened just like any other, as expected.

Note that I am using Mac OS X Mavericks 10.9.2 Yosemite 10.10.3 and JDK 8 Update 45, not just the JRE. The process should be the same for the JRE and newer Java versions, with minor changes to the folder names (Update 45 JDK has “_45” in the paths above), but I did not test any other option.


Update Dec 2014:

  • This has continued to work after upgrading to Mac OS X Yosemite 10.10.1.
  • A security vulnerability (POODLE) has been found since the last Java release, so I recommend disabling SSL v3.0. The latest release does this by default.
  • I personally recommend disabling Applets and WebStart (either by removing them from JVMCapabilities in the Info.plist mentioned above, or through the Java Control Panel). I removed this from my post.

Update Jan 2015:

A commenter, eric3k, has told me that creating two empty folders may also fix this issue. If the above does not work, you might want to give that a try. The two folders are:

  • /System/Library/Java/JavaVirtualMachines/1.6.0.jdk
  • /System/Library/Java/Support/Deploy.bundle

You can create these with the following commands:

sudo mkdir -p /System/Library/Java/JavaVirtualMachines/1.6.0.jdk
sudo mkdir -p /System/Library/Java/Support/Deploy.bundle

Update Mar 2015:

Beware! The latest JRE installer from Oracle includes adware. Oracle recently released Java 8 Update 45, and added an Ask.com browser toolbar in the installer. At time of writing, it is Step 5 on the Java.com Mac installation help page. I highly recommend deselecting the option to install this additional piece of software. If you accidentally install it, you should uninstall the extension from any and all browsers. You will also have to change your homepage back away from Ask.com.

The JRE installer from Oracle only actually installs the web plugin. If you actually want just the JRE, you will need to download the .tar.gz version from the downloads page, unzip it, and move the unzipped folder (jre1.8.0_45.jre) into /Library/Java/JavaVirtualMachines/ and follow the above instructions. However, you will have to modify the commands slightly, changing “jdk” to “jre” and removing “jre/” from the ln command.


Update Jun 2015 regarding El Capitan:

  • Mac OS X 10.11 El Capitan is currently a Developer Preview. I would recommend against running this as your main operating system.
  • I’ve read that Java 6 is temporarily unavailable in El Capitan.
  • A new mode called “Rootless” is enabled by default, which will prevent you from modifying System files. You can disable it by opening Terminal, running
    sudo nvram boot-args=”rootless=0″

    and restarting your computer.

  • You can disable Rootless mode later with:
    sudo nvram -d boot-args

Published by

Oliver

I am a web developer, I am a software developer.

130 thoughts on “Java SE 8 on Mac OS X”

  1. I had a similar problem that was solvable by editing Info.plist, but I also found that adding empty folders at “/System/Library/Java/JavaVirtualMachines/1.6.0.jdk” and “/System/Library/Java/Support/Deploy.bundle” caused OS X to use the Oracle JDK without modification.

    1. Hi eric3k, thanks for the information! It seems weird to me that this would work. Maybe it’s tricking OS X into thinking the default Java is installed, but using the Oracle installation anyway. I feel like this is not as “good” a solution as mine, if only because it’s more obvious what it’s doing and I feel like there’s less potential to cause issues. However, if this works, then that’s what counts, and it might even work for people in some situations where my solution does not.

      1. Yes, it’s weird; I only discovered it when I found that a plugin compiled against Java 8 was working for some and not for others, and it turned out that having Apple’s Java 6 installed was key. The one advantage of this approach is it’ll survive installing newer JDKs down the road.

      2. Greetings…. I was curious, why would eric3ks solution be not as “good” as yours, and what kind of issues are you worried about when you say “less potential to cause issues”… I’m just curious 🙂
        Thanks 🙂

        1. eric3k’s solution appears to trick the operating system into thinking legacy java is installed. This means that if, in a future update, Apple decides to make Max OS X no longer check for legacy Java at all, then his solution may no longer work.

          My solution gives Mac OS X everything it needs to use Oracle’s Java installation, so it is less likely to be broken in an update.

          In my opinion, the first part of my fix (the “JVMCapabilities” issue) is doing something that Oracle’s Java installer should do. The second part of my fix (the “libserver.dylib” issue) is actually because the developer (of whatever software that is causing that error) linked directly to the library, rather than letting Java find it. This meant that when Oracle moved it, it broke compatibility with all software that linked directly to it. I essentially just made the latest Java release from Oracle backwards compatible.

          1. Thank you for the qucik answer. Unfortunately, your solution doesn’t work for me. I had to use yours and eric3k’s solution in order to get it to work….

            The application in question is NetLogo 5.2-RC3.

            Last night I also knew it would work by applying both solutions, but once I removed your solution, and used only eric3k’s, it again didn’t work (but with a different error)

    2. Wow eric3k, that’s the easiest solution I’ve seen yet, and I’ve been Googling this for a while. My problem was that Adobe Illustrator CS6 refused to launch without installing legacy Java. But your solution did the trick. Illustrator now running! Many thanks! (Thanks for the post Oliver and for updating with eric3k’s suggestion.)

    3. Thanks to Oliver and eric3k for help solving this problem. I am a complete moron when it comes to all this crap (the kind of person who makes her husband set up the DVR) and yet I managed to fix this. Woo hoo! Thank you for your help.

  2. Dear Oliver,
    I have tried your suggestions but unfortunately the app that I am trying to run still doesn’t want to start.
    I am experiencing this problem since I upgraded to Yosemite 10.10.1

    When I try to start the app from the terminal i get the following:

    $ open -a Structure
    LSOpenURLsWithRole() failed for the application /Applications/Structure.app with error -10810.

    Any suggestion or help is much appreciated. Anyway, thanks for your time.

    1. Hi Giuliano,
      I’m not sure that this is necessarily an issue caused by the Java installation (but obviously cannot be certain either way without testing).
      Error -10810 is a Launch Services result code indicating an unknown error, so it could be a number of different things.

      I did a quick google search and came up with these possibilities:

      It is strange that you’ve had the problem since upgrading to Yosemite 10.10.1 (I’m assuming from 10.10). My Java applications have continued to work, so I can’t give you advice from experience.

      1. Dear Oliver,
        thanks for your time and response.
        So, I should have mentioned before that I used to work on OS 10.9 and everything seemed to run smoothly. I upgraded 2 weeks ago to 10.10.1 and the problem begun.
        As you suggested in your answer I just tried to run the application from within the .app bundle and actually it seems to work.

        Still, l am wondering why running the normal .app or the “$ open -a myapp” from the Terminal won’t work. I will do some more search to try to figure it out.

        Thanks again.

  3. Dear Oliver,

    I’ve recently, and very reluctantly, upgraded my iMac OS X from 10.7 (I think) to 10.10.2. Now, as I’ve dreaded, my Adobe CS5.5 Suite no longer works. InDesign is totally incompatible (icon is greyed-out), Photoshop and Illustrator (both 5.1) display the “install the legacy Java SE 6 runtime” error when I click on them.

    Should I try the above solutions with OS X 10.10.2?

    1. I would suggest first trying the update I made at the bottom of my post, suggested by another commenter. If it works, it’s the simplest solution.

      EDIT: You will have to install Java first, in case that wasn’t clear. If the apps say they require Java, then you will have to install it, not JUST creating the folders. Another option is to get a newer version of the Adobe products.

      1. Hi, Oliver:

        I downloaded the ‘Mac OS X x64 .dmg’ under Java SE Development Kit 8 downloads on Oracle.
        I ran the install and it seems to have installed it. Sadly, I’m not a power-user and I never use Terminal. How do I add the empty folders as suggested by a user on your blog? I went to the Terminal and typed the lines as indicated but the result I got was ‘no such file or directory’. Am I missing a command?

        I don’t mean to waste your time but I’m desperate to find a decent solution to getting my Illustrator and Photoshop 5.1 for my CS5.5 running again. (Bought this expensive Suite in March 2012 – it’s barely 3 years old!)

        I truly appreciate your time and help.

        Sincerely,
        Abby W.

        1. Read this post and comments a dozen times and was wondering if I need to launch Photoshop or Illustrator via Terminal? It also seems like ‘eric3k’ (the person who provided the ‘simplest solution’ for running JDK 8) also downloaded the legacy Java SE 6 from Apple?

          1. You should not need to launch anything from Terminal, it can be useful if you’re trying to figure out why something isn’t working, as often it gives more information.

            It’s my understanding that eric3k did not download the legacy version of Java from Apple, but he created folders that it creates during the installation process.

          2. Abby, the whole purpose of these workarounds is to avoid installing the legacy version of Java, and I can confirm that eric3k’s solution worked for me, enabling me to run Illustrator CS6 with Java 8 (whereas previously, I was getting the ‘you need to install the legacy Java SE 6 runtime’ error). Have you tried creating those folders as described by me in the Finder, or by Oliver using the Terminal? As Oliver said, you don’t need to launch anything using the Terminal, and it may be safest that you don’t muck about in there if you’re not at all confident with it.

        2. Abby, you don’t need to use the Terminal to create those folders. You can navigate to ‘/System/Library/Java/‘ in the Finder, and create the folders in the normal way (‘File > New Folder’, or click the gears icon in the Finder window.) Enter your Mac’s user password when prompted. Copy and paste the folder names given by eric3k and click ‘Add’ if asked whether you want to add the filename extension.

          The ’JavaVirtualMachines’ folder wasn’t already there for me, so I needed to create that one, and then the ‘1.6.0.jdk’ folder inside that, in addition to the ‘Deploy.bundle’ folder—so I needed to create three folders in total.

        3. Hi Abby,

          My update was a little deceiving for users not familiar with Terminal, in that I only listed the folder paths, not how to create them. You can try creating them the way Kal suggested, or add “sudo mkdir -p ” (without quotes) to the beginning of each of those two lines, and entering your password when prompted.

      2. Dear Oliver,

        Honestly, I was at the end of my rope…until I found this blog! It’s literally a God-send!

        I’m proud and ecstatic to announce that all my CS5.5 Standard programs (which include Photoshop & Illustrator 5.1 with InDesign 5.5) run immediately on my iMac with OS X Yosemite 10.10. 2 and without that pesky ‘legacy Java’ pop-up warning! I thankfully had no need to download some legacy Java app and instead I’m running with the latest Oracle Java JDK8.

        Firstly, I’d like to express my eternal gratitude to KAL for the vital clarification I needed to create these empty folders in my system files and to ERIC3K who provided the simple solution. I did them manually, as suggested, since I’m not comfortable at all using the Terminal. (I’m sure a single misspell could be disastrous)

        Secondly, but most importantly, a heartfelt Thank You to OLIVER, who created this blog in the first place! Otherwise, I’d still be frustratedly reading Apple and Adobe forums filled with conflicting and confusing information! ^_^

        Cheers, guys!

        Sincerely,
        Abby W.

        1. Aww, thanks Abby! Glad you got it working! Yes I agree, Oliver is a legend for maintaining this blog post and replying to everyone’s questions. He seems to have become Adobe’s unofficial (and unpaid!) support person for getting CS6 to work on Yosemite. (Sorry Oliver, I may be partially responsible for this, having dropped a few links to this post on the Apple and Adobe support forums!)

          1. Hi Kal, thanks for the kind words (and links)! Now if only I could convince Adobe to pay me for my post, or figure out a way to monetise my blog 😉

  4. Thanks, Oliver, for your post.
    1) I tried eric3k’s suggestion on Java JDK 8.31… no luck.
    2) I followed your instructions for ‘ info.plist’ and the app quite throwing the error but would not still open.
    3) Checked the terminal command and received the same error regarding ‘libserver.dylib’
    4) Added the directories and alias’d the file using your command lines (only changing the ‘jdk1.8.0_31.jdk’ portion to match my install). It is still giving me the same error.
    Note: I have restarted each step of the way to avoid process issues.

    Any reason you can think of I might still be getting this error?
    JavaVM: Failed to load JVM: /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/bundle/Libraries/libserver.dylib

    Thanks for your time!
    Andy

    1. Hi Andy,

      Did you add “_31” in all three places for the two commands? The error sounds like you did not change the second occurrence on the second command.

      1. Oliver,

        It seems I forgot to click the notify button via email option below with my first post… I just now discovered you had replied.

        I put my project on hold for a few weeks to attend to other business and just returned to it. After working feverishly to relocate your blog, I retried each step along the way and everything now works as planned. I may just have fat-thumbed something along the way, but such is life when you’re coding into the wee hour.

        Thanks again for your help. The only helpful posts I found along the way all pointed to this page with yours and erik3k’s suggestions.

        Thanks again!
        Andy

        1. You’re welcome, Andy, I’m glad I could help.

          Sometimes it can be annoying, but one wrong character in those Terminal commands, and it’s not going to fix anything.

  5. Hey Oliver, and all,

    Followed a link to here from other forums. OS X 10.10.2 and Adobe CS6. All CS6 work except Illustrator. Your blog is a little over my head, but it seems I should download Java 8, and then try erik3k’s adding empty (“untitled”?) folders?

    Don’t know anything about Java other than I don’t otherwise need it. Or want it if it’s a security risk; is 8 considered relatively safe? And can I uninstall it if it doesn’t allow Illustrator to launch?

    Thanks in advance — gd0

    1. Hi gd0,

      Install JRE (Java Runtime Edition) and add the folders eric3k mentioned. I’ve added the terminal commands for creating those folders at the bottom of my post.

      It shouldn’t be a security risk if you only run Adobe products, and you can uninstall it later if you no longer want it.

  6. Thanks Oliver.

    Forgive my newbie-ness, but I’m fairly unknowledgeable about Terminal and Java.

    Do I look for and download the exact name “Java Runtime Edition” at Oracle? Or elsewhere? And apparently I really should avoid Java 6, yes?

    Terminal commands: does that mean open Terminal, and copy-and-paste those two phrases in some available place? Is a restart needed?

    As far as I know, I don’t need Java otherwise. No gaming, no social media, no 3D anything, no wireless. Using only mainstream pro apps (Adobe CS6, Quark, Word). The only atypical add-on is a Wacom tablet, no mouse. All that’s done here is print/web graphic design, building a music server, and browsing the internet.

    Again, I’m only here because I couldn’t open Illustrator CS6. I’ll probably move to Creative Cloud within the year, where Java conditions will likely still exist.

    And of course everything I’ve read says that Java is a security risk.

    Thanx again — gd0

    1. In the third paragraph, I linked to a page that lists the downloads. Click not he “download” button under “JRE” and it will take you to a page to accept a License Agreement and to choose your platform (choose the Mac OS X x64 “.dmg” option).

      Yes, copy and paste the commands into terminal one at a time, and enter your password if/when prompted. No restart is required.

      I could be mistaken, but I don’t think that Java is required for Creative Cloud; I ran Photoshop CC without Java prior to this post.

      1. Hey Oliver

        Thanks again. Got distracted, have addressed this again just today, as i need Illus CS6.

        And of course this thing I understand least is not working predictably, and I can’t get past the first step. Or maybe I did, and can’t see it.

        jre-8u31-macosx-x64.dmg wouldn’t download; the first try only got to about 30%. I trashed the first .dmg then (very reluctantly) turned off the firewall, and tried again. It took well over an hour and a half, and it looks like it’s there, but not sure. I got an alert midway that said something like “could not complete, not enough free space” (I have a 1TB SSD). I moved what I think downloaded to the desktop, double-clicked it, nothing happens. Here is a grab of what is on the D/T: http://i546.photobucket.com/albums/hh438/gdpb/grabJava.jpg

        Thinking maybe J8 was in fact installed (with no visual cue), I tried to launch Illustrator, failed, got an alert, “needs legacy Java 6”.

        Went to the Terminal to install the sudo text. NONE of that behaved in a predictable manner. But Illustrator finally launched.

        Gee, it only took me 6 hours to launch Illustrator.

        Obviously I’m unfamiliar with even the most elementary basics of programming, so I still need to pester you with a couple questions if I may.

        Is it possible that I didn’t need ANY Java at all, and the Terminal commands would have been sufficient?

        If that’s so, can I uninstall Java, and expect to use Illustrator CS6 on this Yosemite 10.10.2?

        If that’s so, how do I do that? (It’s OK to point me to an off-site tutorial, as long as it’s clear and simple.)

        Apple has built new Macs to be Java-free for a reason, and everything I’ve read says Java is a security risk. I’m just starting with this 2013 iMac, and I’d prefer not to cripple iit right out of the gate.

        Thanks for your help — gd0

        1. The image you linked shows a Safari incomplete-download file. Did you double check how much free space you have after you received an alert saying you do not have enough free space? It sounds like either your Internet connection dropped out, disrupting the download, or your 1TB SSD is full (or you tried downloading it to another drive that did not have enough space).

          A Java install should be pretty obvious that it’s happening, once that file is downloaded, double clicking on it would open a Finder window where you would have to double click on an installer file. You can check if you have Java installed (and what version) by opening Terminal and entering “java -version” without the quotes.

          Unless the version of Illustrator is not a Java application, there is no way it can run without Java installed. I have not looked into it, but I guess it’s possible that it only requires Java for a plugin, so it checks for Java on startup. If that’s the case, tricking the operating system into thinking Java is installed would work until you tried to use whatever function of Illustrator required Java, in which case that function would not work (and possibly crash Illustrator).

          Having Java installed isn’t really the security issue, it’s malicious software exploiting that it’s there, or running Java applications being exploited from external sources. Make sure Java in the browser is disabled, and don’t run any random .jar files and the added security risk is almost zero.

          1. Thanks again, Oliver. Surprisingly, I understood all of it.

            Yes, the download attempt appeared, and was, incomplete. This internal SSD is never more than 25% full (250G). The Terminal command yielded this: “Unable to locate a Java Runtime to invoke.”

            It was only 60MB. Another similar download that day for something else was also slow, but not nearly as slow as the Oracle. My DSL service is not the best.

            So Java is not installed, Illustrator (CS6) opens, and that’s the best possible scenario for me. If Illustrator does take a dump later, I’ll know why and can fix it. I only do bare-bones work in Ai. No plug-ins, in Illustrator or otherwise.

            The security explanation is helpful too; mirrors what I’ve read elsewhere.

            Peace of mind is good.

            Best, gd0

  7. I would also like to say thanks for your help and that this worked for me too.

    I do have to add, however, that the utter ridiculousness of this entire process makes me incredibly depressed about the future of our profession.

  8. What a well-informed thread, with many people helped. Oliver, you are a wonder. I’d love to count myseIf among them but sadly my OS is behaving differently. Namely, the two folders eric3k suggests creating (/Deploy.bundle & /1.6.0.jdk) both already exist in my /System/Library/Java folder. Running the command lines in terminal doesn’t do anything at all. I did install the latest Java SE, direct from your link in the original post.

    I’m not sure how to create those 2 empty folders except maybe to grant myself permission on both and then delete them? And then run the terminal commands? Hmm.

    Could it be that Oracle has adjusted their latest Java SE since those posts you made above?

    1. The two folders should not be directly in that Java folder, they should be in subfolders. If that is the case, and they were already there before you did anything, then is it possible Legacy Java was installed on that computer at some stage? Are those folders empty? There is no point deleting them, only to create them again, that won’t achieve anything.

      Oracle has not updated their installers since another commenter has confirmed that it worked. I believe that if Oracle released a Java update that fixed these issues, it would be highly unlikely they would include eric3k’s solution.

  9. Nope, those 2 folders sure aren’t empty. In fact they contain several other folders and files.

    For the /1.6.0.jdk folder, the path is this: System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/~ and here in /Contents there are several folders: /Classes, /Commands, /Home, /Libraries, /MacOS, and /Resources; Each of these folders is teeming with many other files. /Contents also contains two files as well, /info.plist and /version.plist.

    As for the /Deploy.bundle, its path is:
    System/Library/Java/Support/~ and in /Support there there are only two files: /CoreDeploy.bundle, and /Deploy.bundle. Neither is a folder but instead they each are represented by a Lego-type icon. Double-clicking on them does nothing. The CoreDeploy.bundle is 7.6Mb and Deploy.bundle is 6.9Mb. Large, no? Interestingly besides their size, while their version numbers are the same, 15.0.0, their creation dates are far apart. Deploy.bundle was created and modified 7 Jan 2015, while CoreDeploy’s date of created/modify is 28 May 2014.

    I don’t know if any of that information gives you any clues as to when these files & folders were installed or what version of Java they belong to, but I can tell you that I updated the Java on this OS today, using the most recent build that Oracle offers.

    Also I found that it was not possible to delete them using the commands that eric3k first posted. Not even when I adjusted the permissions for their parent folders.

    Before I installed the new Java 8.31 today, this Mac had been running OS 10.8.5. and using AdobeCS6. No Legacy installs would be present unless I’d deliberately installed them, right?

    Much appreciation for your brain power and time spent on this. It’s all very confusing and mysterious to me.

    1. Everything you said sounds to me as though Legacy Java was installed on your computer at some stage. It is possible to have both installed, which is likely what you have.

      Erik3k did not actually post commands, so I’m assuming the commands you are referring to are the ones I added in my “Jan 2015” update, which create the folders, not delete them.

      You are correct that no legacy installs would be present unless you installed them, but everything you wrote indicates that you (or someone using your computer) installed it. When Java is required by OS X to run an application, OS X asks if you want to install Legacy Java; I would guess that you automatically pressed continue when prompted, possibly when Adobe CS 6 was first installed.

      Please note, that adjusting permissions for folders does not apply to subfolders unless you specifically click the gear button and choose “Apply to enclosed items…” but you should not fiddle with that, especially in system folders, unless you really know what you are doing! It is potentially dangerous and can cause instability with the operating system. The same applies when deleting files and folders in system locations.

  10. Hi Oliver –

    Someone on the Apple support thread suggested I pose my questions to you as the very helpful and patient expert :). So here they are.

    I recently did a clean install of Yosemite and am in the process of trying to get Adobe CS6 (largely for Illustrator) up and running for my husband. We are aware of the Java issue and I want to install the correct Java and ideally only once.

    I have enough comfort with our computer to take on a clean install and perform some basic terminal edits (e.g., following detailed directions to make a jump drive a boot drive for the os install), but then run out of experience and comfort quickly. I would appreciate if you could tell me if I have this right.

    Based on my reading throughout the support thread, I understand (perhaps erroneously) the following instructions.
    1. Install Java SE6 though the apple 2014-001 link, be done with it, and don’t worry about the security because Apple prevents Java 6 from running on Safari and it will only run locally. Downside: old software so you will likely never get updates (if they are needed) and you may need Java 8 anyway for other things.
    2. Install Java 8 since it is the most recent, should be the most secure, and is likely to be updated (automatically or is that a pipe dream? If so, by Oracle/java or by apple?). Point applications that need Java to 8 instead of SE6. Disable website access in system preferences. Downside: have to be comfortable enough with terminal edits to do it correctly.
    3. Growl a little at the company of your choice for not playing nicely together in the first place.

    I decided I would be brave and try the Java 8 route since all this effort for dated software doesn’t make too much sense to me, but then followed the link to encounter this warning on the your site: “I went to the Oracle Java downloads page and downloaded JDK 8 (if you do not know the difference between JDK and JRE, you should get the JRE version).”

    As I had seen a warning somewhere else in the forum to make sure to use the JDK version for this work around to be successful, my courage vanished and that the terminal edits scare me a little. They don’t really seem that hard, but I clearly don’t completely understand what I am doing and not sure that your directions are meant for my level of ignorance. The folder “fix” seems less complicated to me but I certainly don’t have the skills to trouble-shoot it down the road if it stops working and would prefer to implement your route for a long-term solution.

    What do you suggest? Are there assumptions in your directions of which it seems I would be ignorant? Would your route work with JRE?

    Thank you so much for providing the assistance that Apple and Adobe should have!!

    Edit by Oliver: Removed surname from comment upon request.

    1. Hi Rebecca,

      The JRE should be all that is needed, but I have only tested with the JDK (which is essentially the JRE with extra tools for software developers). The JRE includes an updater that checks for new versions automatically, or you can manually check for updates through the Java preference pane in System Preferences. The Oracle JRE installer (dmg download option) does not install everything required. A manual install of the JRE (tar.bz download option) would be required, but this adds another couple of steps to get everything working.

      However, my solution contains instructions with commands that are for the latest JDK, which would be a little different for just the JRE. When I get a chance, I intend to test and provide commands specific to the JRE. I have removed the reference to JRE from my post until I am able to do test that setup and advise what the differences are.

      If you need a confirmed working solution as soon as possible, then my suggestion is to install the JDK and create the two folders mentioned in the Jan 2015 update.

      If you don’t necessary require it working immediately, then my suggestion is to install the JRE (make sure to deselect the ask.com option during the installer) and create the two folders mentioned. If Adobe CS6 does not work afterwards, I believe the fix will be similar to my terminal commands above, but specific to the JRE. I will be figuring out what the commands are as soon as I get to test, which will hopefully be in the next few days.

      Edit: I tested the JRE installer from Oracle and it does not install everything required. Manual installation is required, but is trickier to get it all working.

  11. This thread has been quite helpful. I followed the first few steps, but changing the plist file did not remove my warning. Running Illustrator from the terminal DID work however, with no logged errors. I guess I’ll just cross my fingers that nothing breaks down the line. For now, I just added an alias to my bash profile.

    To edit your bash profile, open Terminal and run the command `open ~/.bash_profile` (It’s likely that this is empty) and add the following:

    # Adobe Illustrator CS6 won’t run with Java SE 8 (asks for 6),
    # but running from the command line seems to work just fine.
    alias Ai=’/Applications/Adobe\ Illustrator\ CS6/Adobe\ Illustrator.app/Contents/MacOS/Adobe\ Illustrator’

    Then quit Terminal. From now on, you can just open Terminal and type `Ai` (and pressing enter) to start Illustrator.

    1. You might be able to save yourself having to open Terminal whenever you want to launch Illustrator by creating an Automator script and putting it in your dock.

      Do you get the same alert when typing open /Applications/Adobe\ Illustrator\ CS6/Adobe\ Illustrator.app in Terminal? I assume you still get the alert when opening Illustrator documents directly. My guess is that you may have a typo in the JVMCapabilities section of the mentioned Info.plist but I cannot be certain.

  12. Help. I’ve read the original post as well as contributions and while they all seem to work. They are all above my pay grade knowledge base. I now have NO way to access my photoshop, after the “upgrade”.

    1. Hi Teresa,

      I understand your frustration, but I can’t help you unless you ask a more specific question. If you attempt the solution and run into issues or need clarification, add another comment and I will try and help.

      If you feel that the solution is too complicated, you might want to consider just installing the legacy version of Java.

  13. Hello Oliver! Thank you for this post! I have been trying to make my two java-based applications work in my Mac (10.9.4). After following your steps, the alert is gone now and I was able to install the applications. This post really saved me! 🙂

    However, when I try to launch the applications, Their icons would just appear on my Dock for awhile and then disappear. One application, Gephi, could load halfway and then disappear. That is, after its window “Loading cache”, it disappears.

    Do you have any idea how I could resolve this? Since it happens to two java-based apps, I figured my jdk still isn’t configured properly. I have tried eric3k’s way but the problem still persists. Thank you very much!

    1. If you only tried eric3k’s solution, then the problem is possibly the libserver.dylib issue I addressed in my post, or another application error. Try opening the application from Terminal with something like “/Applications/Gelphi.app/Contents/MacOS/Gelphi” (no quotes, and assuming you have it installed in the Applications folder) and see if there is any output in Terminal indication an error.

  14. muCommander.
    Very useful. But it requires Java 6 (as do some other apps as well).

    With above method I can get it working perfectly fine from terminal /Applications/muCommander.app/Contents/MacOS/JavaStubExec but can not get it executed from GUI (Applications) – it flashes & in console I can see a single error

    Ofcourse Apple forums are totally useless (like most of the time) for this.

    Help appreciated

    sebus

  15. There is no typo in anything (copy/paste always works fine…), as it runs perfectly fine from command line (with typo it would also most likely error out):

    20/03/2015 21:32:29.398 com.apple.xpc.launchd[1]: (com.mucommander.muCommander.20764[985]) Service exited with abnormal code: 1

    1. This is actually my fault, when I last edited my post, I accidentally removed the wrong lines from the JVMCapabilities section. “Applets” should have been “BundledApp” so if you make that change, it should work.

  16. Hi Everyone,

    I’m trying to launch Illustrator CS6 in OS X 10.9.5 but getting the no Java prompt. I installed latest Java from Oracle, that didn’t work. (I would like to uninstall it, how can I do that?)

    I’m trying to understand Olivers’ instructions. I managed to download the latest JRE tar.gz folder and unzip it. (Do I really need to drag the entire folder over — it has license and other useless looking files in it.) I managed to create a folder called Java Virtual Machine Runtime or such, (but I can no longer find it, how do I get to System folder…?). Can you help me proceed, please? (I especially don’t understand the commands part and lines part and prompts and Terminal.)

    1. Hi Tommy,

      I would recommend using the JDK installer. I only briefly tested the JRE manual install, and it is not as simple to get working as the JDK installer.

      You can get to the System folder in Finder by pressing Shift+Cmd+G and typing “/System” (no quotes) and pressing “Go

      The “commands” are just text entered into Terminal. Terminal is an application supplied with OS X. Beyond that, I’m afraid you’ll have to do your own research. There are many resources on the Internet that do a better job at explaining Terminal and how to use it than I would be able to provide in a comment.

  17. Hi!

    When I try to mkdir at /System/Library/ . . . I receive “mkdir: /System/Library/Java/JavaVirtualMachines: Operation not permitted”.

    `sudo -i` and `sudo su` are not helps with this problem, also I can’t change owners & permissions for `/System` or `/System/Library/Java` folders…

    Help me plz!

  18. Do you got a solution for OSX 10.11 El Capitan? None of the above solutions seems to work. Additionally I get a operation not permitted error when making the dir: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk

    1. I have not tried El Capitan, but my guess is that this is because of the new “rootless” mode. You can disable it by opening Terminal and typing:

      sudo nvram boot-args="rootless=0"

      Restart your computer and try creating the directories again.

  19. Risking that someone already outlined this, but i didnt have time to go through all the comments:

    The above method solved my issue that my Eclipse IDE was not opening anymore after update to El Capitan Beta. It said that it needs Java 6 and that it is not supported by my OS. Which is odd as i never had Java 6 installed in the first place…

    Anyways, the above fixed it. Thanks a lot.

  20. Followed the guide multiple times without any luck. I can confirm jdk 1.8.0_45 is correctly installed but eclipse is still spitting out this error:

    JavaVM: Failed to load JVM: /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bundle/Libraries/libserver.dylib
    JavaVM FATAL: Failed to load the jvm library.

    Strange thing is, the symlink is in place but still not being able to load the library. Restarting didn’t solve the problem either.

    1. What version of Mac OS X and Eclipse are you running? I just installed Mac OS X 10.11 El Capitan Developer Beta, Java SE 8u45 JDK, and Eclipse IDE For Java Developers (Luna SR2) and Eclipse just opens without me having to do any of the steps in my blog post.

  21. I tried adding the libserver.dylib file directly to my Flash Builder’s info.plist file and now I get this error:

    dlopen(/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/server/libjvm.dylib, 2): no suitable image found.
    Did find:
    /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/server/libjvm.dylib: no matching architecture in universal wrapper

  22. Marvelous…

    Your Rootless Terminal command, folowed by an immediate shutdown/restart…then allowed me into System/Library ( be careful here, El Capitan is also preserving parts of your ‘Previous/System.) where I could make the Folders listed ( also had to create one of the (previous) listed Folders first, too, as it wasn’t listed under System/Java…….so, in all, created 3 folders!!

  23. tried following the steps .doesn’t seem to help with opening arduino. the java legacy error is gone but the app doesnt launch. (have already added the necessary directories and followed both solutions)

    1. hi, from both command line and double clicking. from terminal, i get

      failed for the application /Applications/Arduino.app with error -10810

      1. I just downloaded the Arduino software (version 1.6.5) from http://www.arduino.cc/en/Main/Software and it runs on OS X 10.11 El Capitan without having to install Java. The MAC OS X version of the Arduino software linked on that site comes with the JRE built inside it.

        I did, however, have to choose to “Allow apps downloaded from: Anywhere” within the “Security and Privacy” section in System Settings.

        You might be able to get more information on why it is failing by running:
        /Applications/Arduino.app/Contents/MacOS/Arduino

  24. Hei

    CS6 Master Working on Macbook PRO/ OsX 10.11 (15A178w) El Capitan

    How.

    I have dual boot Yosemite/El Capitan on MacBook Pro (13-inch, Late 2011),
    both clean installs…

    First: Boot El Capitan and enable rootless running terminal command:

    sudo nvram boot-args=rootless=0

    ReBoot to Yosemite

    Second: Install JavaForOSX2014-001 from:

    https://support.apple.com/kb/DL1572?locale=en_US

    Locate Java folder /System/Library/ on Yosemite and copy entire Java Folder.

    Locate /System/Library/ on El Capitan and paste copied Java folder there.

    Reboot to El Capitan

    For the security reasons disable rootless again running terminal command:

    sudo nvram -d boot-args

    Reboot to El Capitan

    Run terminal command:

    java -version

    answer should be:

    Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1)
    Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode)

    Worked for me after days trying to run java 1.8 for CS6

    1. I could not get The Story Workbench to run. The web page you linked makes references to Java 5 and Carbon (an old Mac OS X API that is now obsolete), so it may just be too old.

      The program does sound interesting, especially because some of the software I develop is related to language and linguistics.

      You might be able to contact the author for help getting it working.

  25. Got it all working, trick was to make sure that Current in /System/Library/Frameworks/JavaVM.framework/Version is an alias for A (in same folder)

  26. Hello i need help, sorry im beginner, please how open Mucommander.app on El Capitan, is there some solution how to repair that?

    only jar file working, but its not app and i cant add to my dock, this is my solution for now….

    very thank you 🙂

    Process: JavaApplicationStub [380]
    Path: /Applications/muCommander.app/Contents/MacOS/JavaApplicationStub
    Identifier: com.mucommander.muCommander
    Version: 0.9.0 (0.9.0)
    Code Type: X86-64 (Native)
    Parent Process: ??? [1]
    Responsible: JavaApplicationStub [380]
    User ID: 501

    Date/Time: 2015-07-14 16:25:58.489 +0200
    OS Version: Mac OS X 10.11 (15A215h)
    Report Version: 11
    Anonymous UUID: A4E325FC-5B33-AECD-2008-2F5D766278F6

    Time Awake Since Boot: 49 seconds

    Crashed Thread: 28 Java: AWT-EventQueue-0

    Exception Type: EXC_BREAKPOINT (SIGTRAP)
    Exception Codes: 0x0000000000000002, 0x0000000000000000
    Exception Note: EXC_CORPSE_NOTIFY

    Dyld Error Message:
    Symbol not found: _CGContextSetAllowsAcceleration
    Referenced from: /Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Libraries/libawt.jnilib
    Expected in: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices

    1. You need to give me a bit more to go on than that. Did you update from Yosemite, or from the last Developer Preview? What is “it” that is not working any longer? What version of Java were you previously running?

  27. “…and installs the same deprecated version of Java 6 included in the 2013-005 release…”

    Why bother then?

  28. Hi, I’m looking for some help with installing CS5. I’ve been trying to get Adobe CS5 to run on my MacBook Pro.

    I’ve created the folders as Kals mentioned above labeled:

    /System/Library/Java/JavaVirtualMachines/1.6.0.jdk
    /System/Library/Java/Support/Deploy.bundle (this folder turned into a white box)

    Im still getting the java error that I need to install legacy version? I know that I’m missing something simple.
    I’ve never done anything with the terminal

    I’m running 10.10.4
    Java is ver8 update 51 (downloaded after I created the folders.)
    I did do a restart after.

    My Hope is not to have to install the legacy version and stick with the newer version.

    Any help you could offer would be appreciated!

    1. “…installs the same deprecated version of Java 6 included in the 2014-001 and 2013-005 releases…”

      Somehow I do NOT think that I will be doing that…

  29. Kudos to Oliver for his tips posted here.

    While it now provides a means to ‘fix’ Oracles omissions I still feel Oracle need to get their finger out. I have to say their Mac friendliness is if anything going down hill. (Virtualbox another Oracle product still does not have any Mac guest additions.)

    As others have pointed out Apple have now issued grudgingly a new 2015 version of their Java 1.6 JRE. This is another more user friendly means to getting Java apps working including now also under El Capitan. However Apple seem to be making it clear that this time really, absolutely it is the last time they are going to do this so if/when the successor to El Capitan comes out we will be back to the same problem and finding a bunch of applications suddenly unable to run. (Again.)

    It is high time Oracle dealt with this issue properly themselves so that Java applications can run as expected with just their JRE installed. It should not be necessary to install the JDK just to run a Java application, nor should it be necessary for mere users to become Unix/Java experts just to get a Java application to work. As Oliver has shown it would not take Oracle much effort to do their installation properly.

  30. Hello Oliver,
    I tried to install a mindmap-based literature suite concept called „Docear“ (www.docear.org) on my mac, but unfortunately there was the Java SE 6 runtime problem. I’ve already tried your suggestions and got rid of the alert (Thank you very very much!!) and the app starts, but there is no window that opens.
    I run OS X Yosemite Version 10.10.5, have installed the latest JDK8 version 1.8.0_60 changed the Info.plist and created the directories and the link and added the two empty folders as eric3k supposed.
    I’ve already tried to open the application from Terminal by “/Applications/docear.app/Contents/Resources/Java/docear.sh” and it says ….
    Knopflerfish OSGi framework, version 4.1.10
    Copyright 2003-2009 Knopflerfish. All Rights Reserved.

    See http://www.knopflerfish.org for more information.
    Loading xargs file /Applications/docear.app/Contents/Resources/Java/props.xargs
    Loading xargs file /Applications/docear.app/Contents/Resources/Java/init.xargs
    Installed and started: reference:file:/Applications/docear.app/Contents/Resources/Java/core/org.freeplane.core (id#1)
    User properties not found, new file created
    Installed: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.docear.plugin.bibtex (id#2)
    Installed: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.docear.plugin.core (id#3)
    Installed: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.docear.plugin.pdfutilities (id#4)
    Installed: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.docear.plugin.services (id#5)
    Installed: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.freeplane.plugin.bugreport (id#6)
    Installed: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.freeplane.plugin.formula (id#7)
    Installed: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.freeplane.plugin.latex (id#8)
    Installed: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.freeplane.plugin.openmaps (id#9)
    Installed: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.freeplane.plugin.script (id#10)
    Installed: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.freeplane.plugin.svg (id#11)
    Installed: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.freeplane.plugin.workspace (id#12)
    Started: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.docear.plugin.bibtex (id#2)
    Started: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.docear.plugin.core (id#3)
    Started: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.docear.plugin.pdfutilities (id#4)
    Started: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.docear.plugin.services (id#5)
    Started: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.freeplane.plugin.bugreport (id#6)
    Started: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.freeplane.plugin.formula (id#7)
    Started: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.freeplane.plugin.latex (id#8)
    Started: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.freeplane.plugin.openmaps (id#9)
    Started: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.freeplane.plugin.script (id#10)
    Started: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.freeplane.plugin.svg (id#11)
    Started: reference:file:/Applications/docear.app/Contents/Resources/Java/plugins/org.freeplane.plugin.workspace (id#12)
    Sep 11, 2015 4:48:58 PM org.freeplane.core.util.LogUtils info
    INFORMATION: language resources for de found
    Uncaught error fetching image:
    java.lang.NullPointerException
    at sun.awt.image.InputStreamImageSource.getDecoder(InputStreamImageSource.java:214)
    at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:159)
    at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:263)
    at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:205)
    at sun.awt.image.ImageFetcher.run(ImageFetcher.java:169)

    I searched the Internet and found the similar problem here https://sourceforge.net/p/freeplane/bugs/2194/ and there they said that it is „a bug in one library which has got important only with the latest Java version 1.8.0_25“
    Do you perhaps know how to solve this problem or could give me any suggestion what I have to customize/change so that Docear might work ( because as far as I understand the problem is because of freeplane) ?
    Thanks for your help already and I would appreciate hearing from you!

    1. Sounds like a problem with Docear being incompatible with the latest Java version. From this page on the Docear website:

      Mac OS X 10.10.x (Yosemite): Since we don’t have a Mac for testing and developing, we can only report what users are telling us, and reports are contradicting. Some users use Docear successfully on Yosemite 10.10.x. However, it seems that many users experience problems. Originally, we thought the problem was caused by one of the software libraries Docear is using (the OSGI framework) which presumably is not compatible with Mac OS X 10.10. There is a version of that library that is compatible with OS 10.10 but upgrading Docear would require massive changes. We currently don’t know when we will have time for this. However, as mentioned, some users run Docear successfully on Mac OS X 10.10 with the ‘old’ software library. One possible solution is explained on StackOverflow, with the solution being to downgrade your Java version (on your own risk).

      So, all we can suggest is: Try to run Docear, maybe it works. If it does, let us know how you did it. If it doesn’t… come back in a few months and check if we upgraded Docear to the latest OSGI version, or have some other information on how to run Docear on Mac OS X 10.10.

      Apparently there is also a beta version available, so you could try that.

  31. I have PhotoShop CS3 and I use it daily. I know, it’s old, but it does what I need it to do so I can’t justify spending all that money to get the latest version. Plus I hate that subscription model, don’t get me started! After upgrading to El Capitan I got the “You gotta run Java 6” error, which lead me to your site. I installed the latest JDK and edited the plist file in text wrangler and replaced the existing file. Now all works perfectly! Thank you so much! I made a shared Google Drive folder and put everything needed as well as instructions in there. Here’s the link:
    https://drive.google.com/folderview?id=0B_cVc-3f5268bW1YdGpUUngtRFk&usp=sharing

    1. Hi Jared, I installed each of Legacy Java 6 from Apple, and Oracle’s JDK 8u60 on fresh Virtual Machines of Mac OS X, and neither set $JAVA_HOME, so I’m not sure your guide is complete.

      1. I have no idea when I added JAVA_HOME to ~/.bash_profile but it had to be a long time ago. I’ve moved this profile from Mac to Mac to Mac so gods know how long its been there.

        Anyway, post updated. Give it a peek and let me know what you think…

        1. Hi Jared, I like that you added setting the JAVA_HOME environment variable. My original intention for the post was for getting applications to work without installing the legacy Java, and not using Java from the command line, even though it also did that.

          It is valuable information, however, so I’ve added it with some simplifications and modifications (like making the commands version-agnostic) of this post to a new post for installing the JDK on El Capitan. I’ve recommended using /usr/libexec/java_home for determining the Java home directory over using symlinks, but that only works on the command line.

          I never really looked into how the legacy Java 6 setup worked, so I’m not too familiar with how it is set up. Does using symlinks the way you have it set up change the default Java that OS X would try and use if opening a “Bundled App” not from the command line (where the environment variable would be set)? I think that would be useful for some people who are having issues with some very old/unsupported software mentioned in some other comments.

      1. Post updated to the correct paths, thanks. They were your paths in the first place… I fixed them when I used them but apparently not when I copy/pasted into my post.

  32. Thank you very much …..I had a problem with muCommander and El Capitan and Java 7. I followed your suggestions and I am able to use muCommander…

  33. Hi Jeffrey, it seems you have resolved the problem? I run CS5 and being a complete novice with this stuff, kind of need some clarity on what is wrong. I have download your files from your google drive, installed the JDK, added the new info.plist to the contents folder, but still cannot open Adobe Photoshop (all other programs in the suite seem to open)., am getting the following message : “an unexpected and unrecoverable problem has occurred. Photoshop will now exit” the program won’t open at all.

    Questions; should I remove the infoOLD.plist file from the contents folder? is there anything else I can do to identify why Photoshop in particular won’t open? getting desperate here.
    Cassandra

    1. In case anyone comes here with the same issue, looking for a solution:

      Upgrading from a previous version of Mac OS X (OS X 10.9 Mavericks, in Cassandra’s case) may cause Adobe Photoshop to become corrupted. Confirming Java 8 to be installed correctly and reinstalling Adobe Photoshop has solved Cassandra’s issue.

Leave a Reply to Oliver Cancel reply