SQL Developer 启动报错“Unable to launch the Java application”是因未正确配置JDK路径或版本不兼容,需手动在sqldeveloper.conf中设置SetJavaHome指向JDK 17+安装目录,并重启启动脚本。
SQL Developer 启动报错 Unable to launch the Java application 怎么办
这基本等于 jdk 没找着,或版本不兼容。sql developer 自带的 jdk(仅限 windows 安装包)在新版中已移除,必须手动配外部 jdk。
- Windows 用户别信安装向导里“自动检测 JDK”的提示——它大概率找不到你装的 JDK,尤其当你用的是
jdk-17或jdk-21时 - macOS/Linux 必须手动指定
SetJavaHome,否则直接闪退,连错误日志都不打全 - SQL Developer 23.1+ 要求 JDK 17+,但
jdk-21在某些老版本(如 22.x)里会触发UnsupportedClassVersionError - 检查方法:终端执行
java -version,确认输出是17或21,且不是JRE(得是完整 JDK)
如何正确设置 SetJavaHome 配置项
这个配置不在图形界面里改,也不在 SQL Developer 内部设置里填,它必须写进启动配置文件,否则无效。
- Windows:编辑
sqldeveloper/bin/sqldeveloper.conf,添加一行:SetJavaHome C:/Program Files/Java/jdk-17.0.2(路径不能有空格?那就用短路径名,比如C:/Progra~1/Java/jdk-17.0.2) - macOS:编辑
SQLDeveloper.app/Contents/Resources/sqldeveloper/bin/sqldeveloper.conf,SetJavaHome值填/Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home - Linux:同理改
sqldeveloper/bin/sqldeveloper.conf,路径示例:SetJavaHome /usr/lib/jvm/java-17-openjdk-amd64 - 改完别双击图标启动——要重新运行
sqldeveloper.sh(Linux/macOS)或sqldeveloper.exe(Windows),否则配置不加载
java.lang.UnsatisfiedLinkError: no ocijdbc19 in java.library.path 是啥
这不是 JDK 问题,是 Oracle 客户端驱动缺失。SQL Developer 连 Oracle 数据库时,如果选了 Oracle Thin 驱动,一般不会触发;但一旦用了 OCI 连接类型,就必须有本地 Oracle Client 和对应 JDBC 库。
- 绝大多数人根本不需要 OCI,选
Thin就够了——它纯 Java 实现,不用装客户端,也不依赖ocijdbc*.dll或.so - 如果你非要用 OCI,就得装 Oracle Instant Client,并把它的
lib目录加到系统PATH(Windows)或LD_LIBRARY_PATH(Linux)里 - macOS 上 Instant Client 的
libclntsh.dylib版本要和ojdbc8.jar匹配,否则照样报这个错,而且错误信息里不提版本号,只甩个链接异常
为什么 SQL Developer 显示中文乱码、菜单字体糊成一片
这是 JVM 启动参数没设对,和系统语言无关,也不是字体安装问题。
- 在
sqldeveloper.conf里追加两行:AddVMOption -Dfile.encoding=UTF-8和AddVMOption -Dsun.java2d.xrender=false - 第二行特别关键:Linux/macOS 上不加这个,GTK 或 Quartz 渲染会崩,导致菜单文字重叠、按钮不可点
- Windows 用户如果用了高 DPI 显示器,还要加:
AddVMOption -Dsun.java2d.dpiaware=true,不然界面缩放失真 - 改完配置后,必须彻底退出 SQL Developer(包括系统托盘进程),再重启,否则字体缓存不刷新










