授权与加载
Officia 采用席位签名授权:不锁机器、不联网,把"授权给谁"签进离线授权文件 officia.lic。未授权时以评估态运行(带水印、限页),加载有效授权即解锁。
评估态 vs 授权态
| 评估态(未授权) | 授权态(已加载 officia.lic) | |
|---|---|---|
| 能否使用 | ✅ 全部 API 可调 | ✅ |
| 输出 | 带评估水印、限制页数 | 无水印、完整 |
| 联网 | 不需要 | 不需要(离线验签) |
| 是否中断宿主 | ❌ 绝不 System.exit,仅降级 | — |
Officia 是一个库,永远不会中断你的程序。未授权只是"降级"(水印 + 限页),不抛异常、不退出。
加载授权(零代码自动加载)
购买后获得 officia.lic。把它放到下列任一约定位置,Officia 首次使用能力时自动查找并离线验签加载,无需写任何代码:
| 优先级 | 位置 | 说明 |
|---|---|---|
| 1 | 系统属性 -Dofficia.license=<路径或令牌> | 启动参数注入 |
| 2 | 环境变量 OFFICIA_LICENSE=<路径或令牌> | 容器 / CI 友好 |
| 3 | classpath /officia.lic | 放 src/main/resources/ |
| 4 | 工作目录 ./officia.lic | 放 jar 同级 |
也可显式加载(优先级最高,覆盖自动加载):
java
import plus.ruoyi.officia.license.OfficiaLicense;
OfficiaLicense.setLicense(new java.io.File("/etc/officia.lic"));
// 或直接传令牌文本 / 字节 / 输入流坏文件或过期授权只会降级为评估态,不会让程序崩溃。
查询授权状态
java
OfficiaLicense.isLicensed(); // 是否已授权(签名有效且未过期)
OfficiaLicense.isEvaluation(); // 是否评估态
OfficiaLicense.getLicensee(); // 授权给谁
OfficiaLicense.hasModule("words"); // 某能力模块是否获授权授权版本对比
两档授权,代码完全一致,差异在授权主体、开发席位与再分发权:
| 条目 | 个人版 ¥1288 | 企业版 ¥2999 |
|---|---|---|
| 能力模块 | 全部 | 全部 |
| 开发席位 | 1 名开发者 | 多名(按团队规模) |
| 授权主体 | 个人 | 企业 / 组织 |
| 个人 / 商业项目开发 | ✅ | ✅ |
| 交付并部署给最终客户 | ✅ | ✅ |
| 团队内部多人使用 | ❌ | ✅ |
| OEM / 再分发(内嵌自有产品分发) | ❌ | 可协商 |
| 技术支持 | 三年免费 | 优先支持 |
关于外包交付(常见问题)
- 可以用个人版做外包 / 接单,并把"内嵌 Officia 的项目源码与运行产物"交付、部署给你的客户。
- 最终客户对已交付项目享有使用、部署、维护、二次开发权。
- 若最终客户自身是企业、需在其组织内多人开发,或要将 Officia 用于其自有的多个新产品 / 大规模对外服务,应由客户方另行购买相应授权。
- 任何版本都不允许把 Officia 本身当作独立组件 / SDK 转卖或换皮分发。
完整条款以商业授权合同为准。购买咨询:微信 / QQ 770492966 · 电话 198 6657 9313。
禁止行为(摘要)
- 去除、绕过评估水印或破解授权校验
- 反编译授权模块 / 伪造授权文件
- 把 Officia 作为独立组件 / SDK 对外销售或再授权
- 去除版权 / 许可声明