SQL Developer 启动必须安装 JDK 17+并正确配置JAVA_HOME,首次运行需手动指定JDK路径;连接Oracle时应填服务名而非SID;中文乱码需匹配数据库字符集设置NLS_LANG环境变量。

SQL Developer 启动前必须装 JDK 17+,不是 JRE
SQL Developer 是 Java 应用,只认 JDK,不接受 JRE 或旧版 JDK(如 8 或 11)。装错会导致启动时黑屏、闪退或弹出“JVM not found”错误。
- 从 Oracle 官网下载
jdk-17.0.2或更高版本(注意选 Windows x64 / macOS ARM64 等匹配架构) - 安装后必须设置系统环境变量:
JAVA_HOME指向 JDK 根目录(如C:\Program Files\Java\jdk-17.0.2),PATH中添加%JAVA_HOME%\bin - 验证方式:命令行执行
java -version和javac -version,两者输出版本号一致且 ≥ 17
解压即用,但首次运行要手动指定 JDK 路径
SQL Developer 不是传统安装程序,而是 ZIP 包。解压后双击 sqldeveloper.exe 会弹窗让你选 Java —— 这个路径不能默认跳过,否则可能 fallback 到系统旧 JDK。
- Windows:解压到不含中文/空格的路径,例如
D:\sqldeveloper;首次运行时点击 “Browse”,定位到%JAVA_HOME%\jre\bin\server\jvm.dll(JDK 17+ 实际路径为%JAVA_HOME%\bin\java.exe,选这个即可) - macOS/Linux:终端进入解压目录,执行
./sqldeveloper.sh;若报No Java runtime present,需在脚本开头插入export JAVA_HOME=/path/to/jdk-17 - 跳过此步直接点 OK,后续连接可能失败,且错误日志里不会明确提示 JDK 版本问题
连接 Oracle 数据库时,“服务名”和“SID”别混用
填错连接参数是“测试成功”但连不上最常见原因。Oracle 12c 及以后默认使用多租户架构,绝大多数情况该填 服务名(Service Name),不是 SID。
- 查服务名:登录数据库执行
SELECT value FROM v$parameter WHERE name = 'service_names';,结果类似ORCLPDB或xe - SID 仅用于非容器数据库(CDB)或旧版实例,如
orcl;填错会提示ORA-12154: TNS could not resolve the connect identifier - 主机名写
localhost时,确保监听器确实在本地运行(lsnrctl status可查);云环境务必用公网 IP,不能写内网地址
中文乱码?优先检查 NLS_LANG,不是字体设置
界面字体设成微软雅黑也没用——SQL Developer 的字符集由 Oracle 客户端层控制,跟 UI 字体无关。乱码本质是客户端与数据库字符集不匹配。
- 先确认数据库字符集:
SELECT parameter, value FROM nls_database_parameters WHERE parameter IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET'); - Windows 下新建系统环境变量:
NLS_LANG=AMERICAN_AMERICA.AL32UTF8(UTF-8)或AMERICAN_AMERICA.ZHS16GBK(GBK),值必须与数据库一致 - macOS/Linux 在启动脚本中加:
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 - 改完必须重启 SQL Developer,且该变量对所有连接生效,不能 per-connection 设置


















