Search code examples
javamacosmultiple-versionshomebrew-caskjenv

Mac OS X and multiple Java versions


How can I install an additional java on MacOS? I installed jdk8 and that works fine. But now I need a jdk7 installation for development purposes. When trying to install the old version via DMG file, i get a warning, that there is already a newer version of java installed and the installer quits.

    /usr/libexec/java_home -verbose
    Matching Java Virtual Machines (1):
        1.8.0_20, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home

       /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home

How to install jdk7 in addition to this one?


Solution

  • The cleanest way to manage multiple java versions on Mac is to use Homebrew.

    And within Homebrew, use:

    • homebrew-cask to install the versions of java
    • jenv to manage the installed versions of java

    As seen on http://hanxue-it.blogspot.ch/2014/05/installing-java-8-managing-multiple.html , these are the steps to follow.

    1. install homebrew
    2. install homebrew jenv
    3. install homebrew-cask
    4. install a specific java version using cask (see "homebrew-cask versions" paragraph below)
    5. add this version for jenv to manage it
    6. check the version is correctly managed by jenv
    7. repeat steps 4 to 6 for each version of java you need

    homebrew-cask versions

    Add the homebrew/cask-versions tap to homebrew using:

    brew tap homebrew/cask-versions
    

    Then you can look at all the versions available by searching for Eclipse temurin, more details here

    brew search temurin
    

    Then you can install the version(s) you like, though version 7 no longer shows up in homebrew via these casks:

    brew install --cask temurin8
    brew install --cask temurin9
    

    And add them to be managed by jenv as usual.

    jenv add <javaVersionPathHere>
    

    I think this is the cleanest & simplest way to go about it.


    Another important thing to note, as mentioned in Mac OS X 10.6.7 Java Path Current JDK confusing :

    For different types of JDKs or installations, you will have different paths

    You can check the paths of the versions installed using /usr/libexec/java_home -V, see How do I check if the Java JDK is installed on Mac?

    On Mac OS X Mavericks, I found as following:

    1. Built-in JRE default: /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

    2. JDKs downloaded from Apple: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/

    3. JDKs downloaded from Oracle: /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home


    Resources