Java在离线环境下搭建开发环境的解决方案

离线安装JDK需配置JAVA_HOME和PATH并验证版本;IDEA离线需预装插件并禁用更新;Maven须配置settings.xml指向本地仓库且注释镜像;Gradle需修改distributionUrl为file:///协议并启用--offline。

离线安装 JDK:别直接解压完就以为能用

离线环境下最常踩的坑是只下载了 tar.gz 包解压,却没配好 JAVA_HOMEPATH。Linux/macOS 需手动写入 shell 配置(如 ~/.bashrc~/.zshrc),Windows 则必须通过「系统属性 → 高级 → 环境变量」添加,不能只靠临时 set 命令。

  • JAVA_HOME 必须指向 JDK 根目录(如 /opt/jdk-17.0.1),不是 bin 子目录
  • 验证是否生效:运行 java -versionjavac -version,二者输出版本号必须一致
  • 若提示 command not found,大概率是 PATH 没包含 $JAVA_HOME/bin

IDE 离线安装与插件预载:IntelliJ IDEA 最容易卡在“正在加载插件列表”

IDEA 默认启动时会联网检查插件更新,离线环境会卡住或报错 Plugin manager is not available。解决方式不是关网络再重装,而是提前准备:

  • 在有网机器上用相同版本 IDEA,进入 Settings → Plugins,勾选常用插件(如 LombokMyBatisXGitToolBox),点击右下角 Install Plugin from Disk… 导出为 .jar 文件
  • 离线机安装 IDEA 后,禁用自动检查:启动时按住 Shift 两次 → 选择 Configure → Settings → System Settings → Updates → 取消勾选 Automatically check updates
  • 手动安装插件:用 Install Plugin from Disk… 加载之前导出的 .jar,重启生效

Maven 离线仓库:不配置 settings.xml 就算有 jar 也编译不过

只把 ~/.m2/repository 整个拷过去不行——Maven 会因缺失 settings.xml 中的本地仓库路径定义,仍尝试去默认路径找,或者因镜像配置残留导致超时。

  • 确保离线机的 $M2_HOME/conf

    /settings.xml
    明确指向你拷贝来的仓库路径,例如:
    /opt/m2/repository
  • 注释掉所有 节点,避免 Maven 尝试连接已失效的远程地址
  • 首次运行 mvn compile 前加 -o 参数强制离线模式:mvn -o compile,否则它仍会尝试校验 SNAPSHOT 版本

Gradle 离线构建:比 Maven 更隐蔽的联网行为

Gradle 默认会在首次构建时下载 gradle-wrapper.jar 和对应版本的二进制包,即使项目自带 gradle/wrapper/gradle-wrapper.jar,它也可能因校验失败重新联网。

  • 确认 gradle/wrapper/gradle-wrapper.properties 中的 distributionUrlfile:/// 协议,例如:
    distributionUrl=file:///opt/gradle/gradle-8.4-bin.zip
  • 把对应版本的完整 Gradle 发行包(bin.zip)提前解压到指定路径,并确保权限可读
  • 执行时显式启用离线:./gradlew build --offline;若提示 Could not resolve org.gradle:gradle-core-api,说明 wrapper 没走本地路径,要检查 distributionUrl 的协议和路径拼写
离线环境最麻烦的从来不是“有没有”,而是“认不认得出来”——JDK 路径少一个斜杠、Maven 的 settings.xml 多一行空格、Gradle 的 file:// 写成 file:/,都足以让整个构建链卡死在某个看似无关的环节。