作用
-cp 与 -classpath 等价,用来指定运行时查找类和 JAR 的 classpath(类路径)。classpath 的概念、与依赖管理工具和 module path 的关系,见 Java Classpath 与 Module Path。
语法
java -cp <类路径> <主类全限定名> [应用参数...]
- 条目之间的分隔符:Linux/macOS 用冒号
:,Windows 用分号; - 条目可以是目录或 JAR/ZIP 文件
.代表当前目录- 支持通配符
lib/*(匹配目录下所有 JAR,不递归子目录),但不能写lib/*.jar - 一旦显式指定
-cp,默认的当前目录.不再自动加入,需要时要显式写上
示例
# 当前目录 + 一个 jar(Linux/macOS)
java -cp .:lib/hsqldb.jar org.hsqldb.Server -database mydb
# Windows 用分号分隔
java -cp .;lib\hsqldb.jar org.hsqldb.Server -database mydb
# 用通配符引入一个目录下所有 jar
java -cp "app.jar:lib/*" com.example.Main
现在大多用 Maven/Gradle 或 IDE 自动拼装 classpath,手写
-cp多见于命令行手动编译运行、排查问题等场景。
维护记录
| 时间 | 修改内容 | 原因 |
|---|---|---|
| 2026-06-28 | 重写为结构化说明,修正原文缺失的路径分隔符示例;链到新建 classpath.md;分类 Java→language,删除 reprint | 原文为转载且示例残缺、信息过时 |