With 7,000,000 users, give or take a million, I get quite a few notes from folks who are having problems getting SQL Developer to open, or to STAY open.
These problems fall into 1 of two buckets:
- the application can’t find Java
- Java is crashing and the application ‘goes away’
Let’s tackle point 1, first.
1. The application can’t find Java
This is generally best described as the ‘bouncing icon’ in your taskbar, as SQL Developer tries to start for a second or two, and then gives up.
This isn’t a crash or application failure.
I’ve talked about how to to fix this problem before, and I’m not going to do it again.
TL;DR – run this and make sure you get an Oracle 8 or 11 JDK back (or 17, but we’ll talk about that later).
TL;DR – Just download the archive that INCLUDES the JDK, and you should be find.
My Mac is just being a pain
2. No, the app is actually crashing
Ok, here’s what we need to know, what version is everything?
- OS
- If a Mac, is it a new, shiny M1?
- SQL Developer
- Java
I need to know those things, and if you don’t tell me upfront, I’m just going to ask.
If the answers you come back with are ‘SQL Developer 17.2’ or ‘Java 8 update 201’ – I’m going to ask you politely to upgrade to software from 2021 or even 2022 and try again.
In general, I’d say right now you’re best off with 21.4.2 of SQL Developer and Java 11 update 13.
If you have that information, and nothing sounds ‘weird’, I’ll ask the following:
What happens if you start SQL Developer from the console/terminal?
Java is pretty chatty/noisy, especially when errors pop up. Sometimes when it crashes it’s fairly nice about it and tells you why. This was somewhat common about 5 years ago – a Windows video driver was notorious for crashing Java. And you could see this in the stack dump and then know to go update that driver.
So here’s what I mean.
On Windows:
Start – Run – CMD
CD to where you have SQL Developer unzipped. Go down into the ‘bin’ folder. Run the EXE. When the application crashes, look for error messages – like where the green area I highlight below.
On a Mac:
Same difference, open a terminal, cd INTO the app, then go into the bin folder, and launch via sqldeveloper.sh.
What do you see then?
In the above example I’m being ‘bad’ on purpose by running a really old Java 8 Home. But, SQLDev still launched and ran OK. I should STILL really, really update that though.
M1 ARM Macs running Monterrey
This is probably the people I’m hearing from the most. The Java we have for this hardware is limited to Java 17, and Java 17 isn’t technically supported by SQL Developer, yet.
The bigger problem is that Java FX Jars aren’t included with 17 JDKs, but you CAN download those separately and add them to the lib folder.
What you MAY want to look into is the GraalVM (GraalVM CE 21.3.0) that takes the place of a Java 11 JDK. That seems to be the least path of resistance currently.
JDK 17 or GraalVM, either way, there is a very nice how-to on this subject here.
I’d write one myself, but my 2018 MacMini is running the ‘old’ hardware like a champ, and I have no plans on replacing it anytime soon.
The ARM chip architecture will become more and more commonplace and the softwares around it will adapt, but I fear for a little while early adapters might be forced to pay the tax. At least in this case, you have two options that both work well.
I NEED MORE HELP
You can visit the forums! There’s a nice thread here for example with the M1 crowd. Or, if your company or org has a support contract in place for at least one copy of the Oracle Database, you can open a Service Request with My Oracle Support.
Or you’ll just leave a comment here – just make sure you answer those questions above from the get-go!
5 Comments
Thanks, my SQL developer is working pretty well on my mac for now. But it uses Rosetta 2 as it’s not being built directly for Apple Silicon architecture (which theoretically is slower/less efficient even if still outcompete SQL developer running on my old Lenovo T480 in Windows 10). Was just wondering if a native version of the app is on the roadmap (maybe packed with an ARM64 JDK).
The only way to deliver a ‘native’ app for your mac would be for us to use GraalVM to build native binaries, and for a program as complex as SQL Developer, that’s not on the current roadmap. And actually, for best experience on new mac OS/hardware, the GraalVM JDK 11 is probably the way to go.
Hi Jeff, just tested the current SQL dev with Oracle JDK 17 for macOS / AArch64 and it turns out the application is showing running as native (with stellar performances!). So I guess we’ll just have to wait for the official support of JDK17 🙂
Hello Jeff! Any update regarding a native M1 app for MacOS ?
Just use GraalVM jdk 11, you should be good to go.