Independent guide — not affiliated with Oracle. Every download goes straight to download.oracle.com.

sqldeveloper.download

applies to 24.3+ (JDK 17), 23.x (JDK 11), 4.1–17.3 (JDK 8)

Fix “Unable to find a Java Virtual Machine” in SQL Developer

“Unable to find a Java Virtual Machine” is SQL Developer’s way of saying it cannot locate a JDK it can run on — the fix is pointing SetJavaHome in product.conf at the right JDK (JDK 17 for current versions) or downloading the archive with the JDK already included.

What actually causes the “Unable to find a Java Virtual Machine” error

The launcher checks for a usable JDK in this order: the SetJavaHome path in your user-profile product.conf, then a JDK bundled with the download, then your system. The error fires when every check fails — which maps to exactly four real-world causes:

CauseTypical situationFix
No JDK at allDownloaded the “no JDK” archive or Linux RPM on a clean machineInstall JDK 17, or grab the archive with JDK included
Stale SetJavaHomeOld JDK was uninstalled or moved; SQL Developer still points at itEdit or delete the line in product.conf (steps below)
Wrong bitness / JRE32-bit Java or a runtime-only JRE on a 64-bit buildInstall a 64-bit JDK 17 — a JRE is not enough
Unsupported JDK versione.g. JDK 8 with SQL Developer 24.3+, which needs JDK 17Match the JDK to your version — see the version × JDK matrix

Fix it in four steps

  1. Check what the launcher expects Identify your SQL Developer version (folder name or About dialog). 24.3+ needs JDK 17, 23.x needs JDK 11, 4.1–17.3 need JDK 8. A 64-bit build needs a 64-bit JDK.
  2. Open product.conf On Windows, press Win+R and open %APPDATA%\sqldeveloper — enter the folder matching your version and open product.conf in Notepad. On macOS/Linux it is ~/.sqldeveloper/<version>/product.conf.
  3. Fix or remove SetJavaHome Set the line to your real JDK path, for example SetJavaHome C:\Program Files\Java\jdk-17 — or delete the SetJavaHome line entirely so SQL Developer asks for a JDK path on next launch.
  4. Still failing? Eliminate the variables Download the 26.2.0 Windows x64 archive with JDK 17 included from the downloads page — it bundles its own Java and skips JDK detection. If sqldeveloper.exe specifically fails, check the MSVCR100.dll note below.

# Example product.conf line (Windows)
SetJavaHome C:\Program Files\Java\jdk-17

The MSVCR100.dll gotcha nobody mentions

There is a second launcher failure on Windows that masquerades as a Java problem. Oracle’s own download page documents it: sqldeveloper.exe depends on MSVCR100.dll, and if the first copy Windows finds in your PATH is 32-bit, SQL Developer will not start — even with a perfect JDK 17 install. The fix is copying a 64-bit MSVCR100.dll into the sqldeveloper\bin folder, or reordering PATH so a 64-bit copy is found first. If sqldeveloper.exe fails silently while sqldeveloper\bin\sqldeveloper64W.exe (or launching via the .conf) works, this is your culprit.

Most guides for this error still describe the 2015-era JDK 8 setup; everything above reflects the JDK 17 requirement of SQL Developer 24.3+ and was checked against version 26.2.0 (released 2026-07-14). If nothing here works, the nuclear option is a clean download of SQL Developer 26.2.0 with the JDK included — it skips JDK detection entirely.

JVM error — FAQ

What does “Unable to find a Java Virtual Machine” mean?

It means SQL Developer’s launcher could not locate a usable JDK: none is installed, the configured path is stale, or the JDK’s bitness/version does not match what the launcher expects. It is a configuration error, not a corrupted download.

Which JDK do I need to fix this error?

JDK 17 for SQL Developer 24.3 and later (including 26.2.0); JDK 11 for 23.x; JDK 8 for the old 4.1–17.3 line. The simplest fix on Windows is downloading the x64 archive with JDK 17 included, which cannot hit this error.

Where is the SetJavaHome setting stored?

In product.conf inside your user profile — on Windows: %APPDATA%\sqldeveloper\<version>\product.conf. Edit the SetJavaHome line to your JDK path, or delete the line so SQL Developer prompts you for a JDK on next launch.

Why does SQL Developer fail to start when Java is installed?

Usually because the launcher found the wrong Java: a 32-bit JDK for a 64-bit build, a JRE instead of a full JDK, or an old version pinned in product.conf. Point SetJavaHome at a matching 64-bit JDK 17 to resolve it.

What is the MSVCR100.dll error on Windows?

A launcher dependency issue Oracle documents on its download page: sqldeveloper.exe needs a 64-bit MSVCR100.dll, and if Windows finds a 32-bit copy first in your PATH, SQL Developer will not start. Copy a 64-bit MSVCR100.dll into sqldeveloper\bin or reorder your PATH.

Does reinstalling SQL Developer fix the JVM error?

Rarely by itself, because the stale JDK path lives in your user profile (%APPDATA%\sqldeveloper), which survives deleting the program folder. Reinstall and remove that settings folder — or just fix product.conf — to actually clear it.

Can I use a JRE instead of a JDK?

No. SQL Developer requires a full JDK — it uses compiler tooling a runtime-only JRE lacks. If you installed “Java” via a browser prompt, you likely have a JRE; install a JDK 17 build instead.

How do I check which Java version and bitness I have?

Run java -version in a terminal. The output names the version (for example “17.0.12”) and says “64-Bit Server VM” for 64-bit builds. No output at all means no Java is on your PATH — which is exactly what the JVM error is telling you.