pycharm提示“license has expired”并非软件损坏,而是激活校验失败,根本原因是本地激活环境被干扰或过期;需从环境变量、hosts文件、agent.jar兼容性及系统时间四方面排查修复。

License has expired 这个提示出现时,PyCharm 并不是“坏了”,而是校验环节被触发后失败了。根本原因通常是本地激活环境被干扰或过期,而不是软件本身出问题。直接重输旧激活码基本无效,得从底层配置入手。
为什么装了 IntelliJ IDEA 后 PyCharm 突然失效?
两个 JetBrains IDE 共享一套激活机制,但它们的启动参数会互相覆盖。常见现象是:IntelliJ IDEA 2026.1.3 激活后,系统环境变量里多了一条 PYCHARM_VM_OPTIONS,其值指向 IDEA 的破解 agent 路径(比如 -javaagent:/xxx/idea/jetbrains-agent.jar)。而 PyCharm 2024.1.7 启动时读到这个路径,却找不到对应 jar 文件,或 jar 不兼容,直接报错退出。
- 打开「控制面板 → 系统 → 高级系统设置 → 环境变量」
- 在「系统变量」和「用户变量」里都搜
PYCHARM_VM_OPTIONS和IDEA_VM_OPTIONS - 删掉所有指向
jetbrains-agent.jar或类似破解工具的行 - 重启 PyCharm,它会回落到自己原来的激活方式(比如内置 license server 或本地 jar)
hosts 文件屏蔽失效导致连接超时
License server can't be reached 错误背后,90% 是因为 hosts 里屏蔽规则没更新。JetBrains 新增了 licensing.intellij.net、account.jetbrains.com 等多个校验域名,旧版只屏蔽了其中一两个,剩下几个仍能连通并返回“已撤销”响应。
PyCharm 2026.2提供 JetBrains 官方 2026.2 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- 用管理员权限打开
C:\Windows\System32\drivers\etc\hosts(Windows)或/etc/hosts(macOS/Linux) - 删掉所有以
127.0.0.1或0.0.0.0开头、后面跟着 JetBrains 域名的行 - 补上这三行(必须全量,不能只写一两个):
0.0.0.0 account.jetbrains.com<br>0.0.0.0 www.jetbrains.com<br>0.0.0.0 licensing.intellij.net
- 保存后执行
ipconfig /flushdns(Windows)或sudo dscacheutil -flushcache(macOS)清 DNS 缓存
agent.jar 路径或签名不匹配
PyCharm 2024.3+ 对 -javaagent 加载的 jar 有更强的签名检查。如果用的是老版本 jetbrains-agent.jar(比如 2023 年打包的),启动时会抛 java.lang.SecurityException: Invalid license certificate,且不提示具体原因。
- 确认你用的 agent 是否支持 2024.x 及 2026.x 版本 —— 查看 release note 或文件修改时间,2026 年 7 月前发布的多数已失效
- 不要把 agent 放在中文路径、带空格路径或 OneDrive/Google Drive 同步目录下,Java 读取时容易出编码或权限问题
- 推荐路径示例:
C:\jetbra\jetbrains-agent.jar(Windows)或/Users/xxx/jetbra/jetbrains-agent.jar(macOS) - 启动脚本里写法必须严格:
-javaagent:C:\jetbra\jetbrains-agent.jar,不能漏掉盘符,也不能用正斜杠
系统时间偏差引发许可证拒绝
JetBrains 校验逻辑依赖本地系统时间。如果电脑时间比真实时间快 2 小时以上,或者设置了错误时区,License has expired 会立即出现,哪怕激活码本身完全有效。
- Windows:右键任务栏时间 → 「调整日期和时间」→ 打开「自动设置时间」
- macOS:系统设置 → 「通用」→ 「日期与时间」→ 开启「自动设定日期与时间」
- Linux(终端):
sudo timedatectl set-ntp true - 改完等 30 秒再试,别急着重启 PyCharm










