sqlcl解压即用但需严格匹配java 17或21版本,路径不能含中文或空格,启动前须验证java -version和java_home,正确配置path及执行权限后运行sql -v确认环境,conn -save前需确保网络连通、权限充足且连接串格式正确。

SQLcl 能直接解压即用,但 Java 版本不匹配是安装失败的最常见原因——不是“没装 Java”,而是版本太低或太高。
Java 版本必须严格满足要求
SQLcl 25.1.1 及之后版本(当前最新为 26.2)只支持 Java 17 或 Java 21,java -version 输出必须显示 17.x.x 或 21.x.x。Java 8–16、Java 22+ 都会报错,典型错误是:
Error: A JNI error has occurred Exception in thread "main" java.lang.UnsupportedClassVersionError
Windows 用户注意:sql.exe 会优先查注册表里的 Java,而不是环境变量;Linux/macOS 用户务必确认 JAVA_HOME 指向正确的 JDK 17/21 目录,并且 $JAVA_HOME/bin 在 $PATH 前置位置。
- 推荐安装 OpenJDK 17(如
jdk-17.0.8),避免 Oracle JDK 的许可限制 - 验证方式:在终端执行
java -version和echo $JAVA_HOME - 若已装多个 Java,临时指定版本可加参数:
java -version:17 -jar sqlcl.jar(仅限 Linux/macOS)
下载与解压路径不能含中文或空格
Oracle 官网下载页地址是 https://www.php.cn/link/ee5d57044e005d0f8104161e20b42286,下载的是 sqlcl-latest.zip。解压后目录结构必须干净:
- Windows 下不要解压到
C:\Program Files\或桌面(路径含空格易触发Could not find or load main class) - Linux/macOS 下避免解压到
/home/用户名/我的工具/sqlcl/(中文路径会导致 JVM 启动失败) - 建议路径示例:
D:\tools\sqlcl(Win)或/opt/sqlcl(Linux)
启动前必须确认 sql 或 sql.exe 可执行
进入解压后的 bin 目录,直接运行:
- Windows:
.\sql.exe -V(PowerShell)或sql.exe -V(CMD) - Linux/macOS:
./sql -V
成功输出类似 SQLcl: Release 26.2 Production on Sun Jul 27 11:54:00 2026 即表示基础环境通了。如果提示 'sql' is not recognized 或 Permission denied,说明没加环境变量或没给执行权限:
- Windows:把
D:\tools\sqlcl\bin加进系统 PATH - Linux/macOS:运行
chmod +x /opt/sqlcl/bin/sql,再执行export PATH=$PATH:/opt/sqlcl/bin(写入~/.bashrc或~/.zshrc永久生效)
conn -save 之前别急着连数据库
首次启动 sql 后,先不输连接串,直接敲 help conn 看命令说明。真正要用 conn -save 加密存密码前,得确保:
- 数据库监听正常(
tnsping或sqlplus /nolog测试基础网络通不通) - 用户有基本连接权限(比如至少能
SELECT * FROM DUAL) - 连接字符串格式正确:
username/password@host:port/service_name,不是tnsnames.ora别名(除非你额外配置了tns_admin)
容易忽略的一点:SQLcl 默认走 Thin Driver,不依赖 ORACLE_HOME 或本地 tnsnames.ora,所以别指望它自动读取旧 SQL*Plus 的配置文件。











