Updated December 1, 2020 – after some reports from folks having issues on Big Sur, I added some additional details around troubleshooting. 

I have ran into a few issues getting SQL Developer version X.Y.Z on my Mac Mini, and I’ve seen a few questions online today now that Big Sur is available. This usually happens as folks get new hardware or as updates are applied to their machines…something quits working.

It usually boils down to SQL Developer not being able to find and use the proper JDK. Either the JDK was removed and replaced with a JRE, or maybe you ended up with Java 9 or 10 on your machine, which won’t work at all with SQL Developer.

So the first thing I like to see is if my machine already has Java.

You can use

 java -version

…which asks Java to tell you what version it is.

Or you can ask your machine to tell you what the current Java Home is…

/usr/libexec/java_home

If you don’t like the answers you get back, you’re going to need to install Java.

Download and Install an Oracle Java 8 or 11 JDK

I hate saying ‘Java …JDK’ as the J stands for Java, but until then I guess that’s how I’ll keep saying it. Go here and get the download. If you’re worried about licensing and want to use an OpenJDK instead – that’s not supported, and it’s not necessary. Oracle products requiring Java don’t require licensing to use an Oracle JDK.

Once you’ve downloaded Java, it’s pretty simple to run the install.

JDK, JDK, JDK - not a JRE!
JDK, JDK, JDK – not a JRE!

If you need more help, here’s the docs around installing Java on a Mac.

To see if it ‘worked,’ run Java from a shell prompt.

java -version
java -version (you can tell how OLD this post is, you should be using something like Java 8 update 250, not update 25 in 2021!) 

Download and ‘Install’ the latest SQL Developer

Get the file.

Once it’s downloaded, open it.

Once it’s expanded, rename it.

Then drag it to your Applications in Finder.

You don't have to do this step, but if you don't, you'll be running SQL Developer out of the downloads folder.
You don’t have to do this step, but if you don’t, you’ll be running SQL Developer out of the downloads folder.

It’s ready to run!

Troubleshooting

Open a Terminal.

Run the /usr/libexec/java_home command.

This should return something with a ‘jdk’ in the string

I’m running Oracle JDK 14, which is an updated take on 11 – it’s not officially supported, but it’ll work.

However, I also have several Java JDK’s on my machine!

8, 12, and 14 – the 8 is officially supported.

By default SQL Developer will use the Java returned by this command, but what if that’s not the ‘right one?’

I want to tell SQLDev WHICH Java to use

CD to your home directory.

Then cd to .sqldeveloper (yes, it’d hidden.)

Then cd to the version of SQL Developer you have installed.

Latest version is 20.2

I’m working with version 20.2, so I’ll cd into the 20.2.0 folder.

There’s only one file here, product.conf. This file tells Java all of the flags we want to set for the Java Virtual Machine (JVM) – say, how much memory to allocate at the start, or at the max. If you leave the file alone, everything is commented out, and will use the defaults based on your machine specs.

That includes the JavaHome. Remember, we’re only messing with this entry in the file when you don’t like the Java returned by the aforementioned output of this command –

/usr/libexec/java_home

Don’t forget to tack on the Contents/Home bits.

Now, when you startup SQL Developer, it’ll use your specified Java Home, and whatever other JVM flags you’ve configured in the product.conf file.

Running that Java 8 home now…
thatjeffsmith
Author

I'm a Distinguished Product Manager at Oracle. My mission is to help you and your company be more efficient with our database tools.

42 Comments

  1. Avatar

    Thanks very much. Worked on a 2019 16″ Macbook Pro running Big Sur 11.2.1

Write A Comment