Using JDK that is bundled inside Android Studio as JAVA_HOME on Mac

We Are Going To Discuss About Using JDK that is bundled inside Android Studio as JAVA_HOME on Mac. So lets Start this Java Article.

Using JDK that is bundled inside Android Studio as JAVA_HOME on Mac

  1. Using JDK that is bundled inside Android Studio as JAVA_HOME on Mac

    MacOS versions before Big Sur: export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/.
    Catalina, Big Sur, Mentere and above: export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/Contents/Home

  2. Using JDK that is bundled inside Android Studio as JAVA_HOME on Mac

    MacOS versions before Big Sur: export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/.
    Catalina, Big Sur, Mentere and above: export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/Contents/Home

Solution 1

Add the correct string to .bash_profile (and reload with source .bash_profile):

  1. MacOS versions before Big Sur: export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/.
  2. Catalina, Big Sur, Mentere and above: export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/Contents/Home

If you’re using Catalina and above, you most probably use zsh as a shell instead of bash. In that case, add it to .zshrc or .zprofile instead of .bash_profile in your home directory.

Don’t forget to restart the operating system after.

After that, running java -version gave this output and Java started to execute normally:

openjdk version "1.8.0_112-release"
OpenJDK Runtime Environment (build 1.8.0_112-release-b06)
OpenJDK 64-Bit Server VM (build 25.112-b06, mixed mode)

As for the Android Device Monitor — it still demands this ancient JRE version 6.

Original Author soshial Of This Content

Solution 2

I just did a fresh install of Android Studio Arctic Fox 2020.3.1 on Big Sur, and I had to use the following.

export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/Contents/Home/

On a slightly different topic, even with the correct JAVA_HOME, ~/Library/Android/sdk/tools/bin/sdkmanager wouldn’t start. I had to install “Android SDK Command-line Tools (latest)” (from Android Studio) and use ~/Library/Android/sdk/cmdline-tools/latest/bin/sdkmanager instead.

Original Author solamour Of This Content

Solution 3

The core problem is that starting from Android Studio Arctic Fox the destination of bundled java has been changed from:
/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/
to:
/Applications/Android Studio.app/Contents/jre/Contents/Home/

You just need to change JAVA_HOME env variable in .bash_profile to the new correct path (be careful with space character, easiest way just to specify path in doubled quotes). And either restart terminal or run source ~/.bash_profile.

Original Author busylee Of This Content

Solution 4

As pointed out by dimezis, JAVA_HOME might be working but the /user/libexec/java_home is still broken.

This is because in Mac, java_home and JAVA_HOME are different. JAVA_HOME is the environment variable / path that will be used in most applications and environment while java_home is the actual executable that is being used by the system to run java. Apparently, some Mac applications (like Xcode) will just ignore the JAVA_HOME path and make use of the java_home executable

So in order to use the Android Studio Embedded JDK as default Java to be used in Mac, copy the entire embedded jdk folder /Applications/Android Studio.app/Contents/jre/jdk to the default Java library folder /Library/Java/JavaVirtualMachines/

After this, set your .bash_profile or .zshrc with this:
export JAVA_HOME=$(/usr/libexec/java_home)

This will make sure that your JAVA_HOME and java_home is pointing to the same java installation.

Original Author crjacinro Of This Content

Conclusion

So This is all About This Tutorial. Hope This Tutorial Helped You. Thank You.

Also Read,

Siddharth

I am an Information Technology Engineer. I have Completed my MCA And I have 4 Year Plus Experience, I am a web developer with knowledge of multiple back-end platforms Like PHP, Node.js, Python and frontend JavaScript frameworks Like Angular, React, and Vue.

Leave a Comment