IntelliJ 无效的源发行版:区分 Project SDK、Language level 和 Gradle JVM
java -version 正常不等于项目编译链正确。逐层核对 JDK、javac、Project SDK、模块 SDK、语言级别与 Gradle JVM。
先理解:一个 IDEA 项目可能同时存在多个 Java 版本开关
java -version 显示的是 PATH 中被执行的 Java 运行时。项目编译还可能受 javac、IntelliJ Project SDK、Module SDK、Language level、Java Compiler target bytecode、Gradle JVM、toolchain 或 Maven compiler 配置影响。只修其中一处,错误很可能仍然存在。
1. 先在项目终端保存证据
java -version
javac -version
# Gradle 项目
./gradlew --version
# Maven 项目
./mvnw -version若 javac 不存在,你可能只安装了运行时,或 PATH/JAVA_HOME 指向不完整的安装。若 Gradle 报告的 JVM 与 java -version 不同,应先解释这个差异,不要盲目删依赖。
2. 按这个顺序核对 IDEA
- Project SDK:是项目默认的 JDK。
- Module SDK:模块可继承项目 SDK,也可单独覆盖。
- Language level:定义源代码可用的语法特性;JetBrains 官方说明它可以与 Project SDK 不同。
- Gradle JVM:Gradle 项目要另外核对运行 Gradle 的 JVM,它可受
org.gradle.java.home或 IDE 配置影响。 - 构建脚本:以仓库中的
sourceCompatibility、toolchain、--release或 Maven 配置为团队真实合同。
3. 不要靠把所有数字改成最新版解决
项目要在 Java 17 上运行,就应明确编译目标与 CI 验证;不能因为本机有 JDK 25 就把语言级别、字节码目标和 Gradle JVM 全改成 25。老 Gradle 也可能不支持由新 JDK 运行,应核对项目 wrapper 与 Gradle 官方兼容表。
验收标准
./gradlew --version或./mvnw -version显示的 JVM 符合项目合同。- 命令行 wrapper 构建与 IDE 构建都通过。
- 重新导入项目后配置不会回退,团队成员不需要依赖你的绝对 JDK 路径。
官方来源
同一问题集群的免费排障页
按你当前看到的报错选一页,不需要从头阅读全部内容。
Python、JDK 与 JetBrains 项目换电脑:解释器、SDK、.idea 和依赖怎么迁移
区分源代码、团队配置、本机状态、秘密文件和可重建目录;按证据处理 Python venv、PyCharm 解释器、IntelliJ JDK、Git 凭据、Node 与 CMake。
2026 JetBrains 合法免费使用指南:学生许可、非商业使用、试用与商业订阅怎么选
不再寻找失效激活码:按学生/教师、个人非商业、商业工作、课堂部署和短期评估五种用途,核对 JetBrains 当前官方许可路径与安全迁移步骤。
PyCharm 报 No module named,终端却能运行:先对齐解释器和 pip
不要先重复安装依赖。用 sys.executable、python -m pip show、运行配置和工作目录定位 PyCharm 与终端是否使用了不同环境。
Python .venv 换电脑后失效:不要复制,用依赖定义重建
Python 官方明确将虚拟环境视为可丢弃、不可搬运的目录。本页给出换机前保存证据、目标机重建和验收步骤。
CMake 换目录后还指向旧路径:删缓存重配置,不要手改 CMakeCache
项目改路径、换电脑或更换编译器后,旧构建树容易留下绝对路径。用 fresh 配置、Presets 和可重现验收修复。
node_modules 要不要复制到新电脑?用 package-lock 和 npm ci 重建
node_modules 可能包含平台二进制、符号链接和安装脚本结果。保留 package.json、锁文件与项目 npm 配置,在目标机做可复现安装。