Oracle SQL Developer
Unable to find a Java Virtual Machine
This error means Oracle SQL Developer started, looked for a Java Development Kit, and did not find one it can use — the fix is either installing a JDK 17 or newer, or telling SQL Developer where the one you already have lives.
jvm meaning What the error actually means
Oracle SQL Developer is written in Java, so it cannot run without a Java Development Kit. On startup it looks for one in a specific order: the path saved in its own configuration file, then the JDK bundled inside the download if there is one, then whatever Java the operating system reports. If all three come up empty — or the one it finds is too old — it stops with this message before drawing a window.
That is why the error usually appears the very first time you launch, or immediately after you upgraded or removed a JDK. Nothing is corrupt and nothing needs reinstalling; the application simply has no Java to run on.
jvm fastest The fastest fix
If you are on Windows or macOS and do not care which JDK you use, take the build that bundles one. Since release 26.2 the Windows x64 zip and the macOS build both include JDK 17, so the error cannot occur — there is nothing to find because Java travels with the application.
- Windows: download the
x64.zipbuild, notno-jre.zip. It carries JDK 17. - macOS: the Apple silicon build carries JDK 17 already.
- Linux: the RPM does not bundle Java, so install a JDK — see below.
jvm install Installing a JDK
Current releases need JDK 17 or newer. Any build works — Oracle JDK, or a free OpenJDK distribution such as Adoptium Temurin.
- Windows: install the JDK, then note its folder, typically
C:\Program Files\Java\jdk-17. - macOS:
brew install --cask temurin@17, then check with/usr/libexec/java_home -V. - Fedora, RHEL:
sudo dnf install java-17-openjdk-devel - Ubuntu, Debian:
sudo apt install openjdk-17-jdk - Arch:
sudo pacman -S jdk17-openjdk
jvm jre A JRE is not enough
This catches people out because Java appears to be installed and java -version answers correctly. Oracle SQL Developer needs the full development kit, not the runtime alone. A machine carrying only a JRE — or only Ubuntu’s default-jre package — produces exactly the same error as a machine with no Java at all.
Install the package whose name ends in -jdk or -devel. If you are unsure which you have, look for a javac executable next to java; the compiler ships only with the JDK.
jvm point Pointing SQL Developer at your JDK
On first launch the application asks for a Java home and then remembers the answer permanently. Nothing in the preferences dialog exposes that setting afterwards, so when the stored path breaks — you upgraded Java, or removed the JDK it was using — the fix is in a text file.
- Windows:
C:\Users\<you>\AppData\Roaming\sqldeveloper\<version>\product.conf - macOS and Linux:
~/.sqldeveloper/<version>/product.conf
Set SetJavaHome to your JDK directory — the folder containing bin and lib, not bin itself. On macOS the path must end in Contents/Home, which is the part most people leave off. Deleting the line entirely makes Oracle SQL Developer ask again on the next start, which is the quickest way out of a wrong path.
jvm other Other causes worth ruling out
- The JDK is older than 17. Java 8 and 11 were fine for older releases and are not enough now. Check with
java -version. - Architecture mismatch. An x64 JDK on Apple silicon runs only under Rosetta 2; if Rosetta is not installed the launch fails. Install an
aarch64build. - Homebrew keg-only install.
brew install openjdk@17does not register the JDK with macOS, sojava_homecannot see it. Use the cask, or symlink it into/Library/Java/JavaVirtualMachines. - A space in the path. Older builds struggle with a Java home containing spaces. If yours does, try a JDK installed somewhere simpler.
jvm verify Confirming it worked
Launch from a terminal rather than a desktop icon the first time — sqldeveloper.exe from a Command Prompt on Windows, or sh sqldeveloper.sh on Linux. Java prints startup errors to standard output, so if something is still wrong you see the reason instead of a window that never appears.
Still stuck? The platform guides cover the failures specific to each system in more depth: Windows, macOS and Linux.