离线安装JDK需确认tar.gz包与系统架构匹配,解压后手动添加bin/java、javac执行权限,JAVA_HOME指向根目录,并用which java验证;Maven同步仓库前须删除所有_remote.repositories文件,禁用远程镜像;IDEA需关闭自动更新并禁用JRE联网检查;Gradle需替换wrapper为本地路径并加--offline参数。

Java JDK 离线安装:别直接解压完就配 JAVA_HOME
内网装 JDK 最常见的问题是:解压完、配了 JAVA_HOME 和 PATH,但运行 java -version 报错“找不到命令”或提示“no such file or directory”。根本原因不是路径错了,而是你用的包不匹配系统架构或缺少执行权限。
- Linux 下必须确认是
tar.gz(非.rpm或.deb),且和目标机器 CPU 架构一致(arm64服务器不能用x86_64包) - 解压后进入
bin/目录,手动给java、javac加执行权限:chmod +x java javac -
JAVA_HOME必须指向解压后的根目录(如/opt/jdk-17.0.1),不是bin子目录;否则javac会找不到rt.jar类路径 - 验证时别只跑
java -version,一定加which java看调用的是不是你刚配的那个
Maven 离线仓库同步:别把整个 ~/.m2/repository 直接拷过去
外网打包好的 ~/.m2/repository 直接复制进内网,大概率出现依赖解析失败——不是文件缺失,而是 _remote.repositories 文件里记录了原始远程源地址,Maven 会尝试联网校验。
- 同步前先在外网机器上清空所有
_remote.repositories文件:find ~/.m2/repository -name "_remote.repositories" -delete - 用
maven-dependency-plugin按需拉取,比盲目同步全量更可靠:mvn dependency:copy-dependencies -DoutputDirectory=./lib - 内网 Maven 的
settings.xml中必须禁用所有远程镜像,只留<localrepository></localrepository>配置,且确保路径存在、有写权限 - 如果项目用了 Spring Boot,注意
spring-boot-starter-parent的 BOM 版本要和你本地仓库里的完全一致,否则mvn compile会静默跳过某些依赖
IDEA 离线配置 JDK + Maven:插件更新和索引会偷偷连外网
IDEA 在离线状态下仍可能卡在“Building workspace”或“Indexing…”,甚至弹出插件更新提示——它默认会检查内置插件更新、代码补全服务、甚至 Gradle wrapper 版本。
- 启动 IDEA 前,在
bin/idea.properties末尾加一行:idea.no.jre.check=true,避免启动时校验 JRE 连网 - 进 IDE 后立刻关闭自动检查:
Settings → Appearance & Behavior → System Settings → Updates→ 取消勾选 “Check for updates” - 新建项目时,不要选 “Create project from archetype”,改用 “Empty project”,再手动导入
pom.xml,否则 archetype 插件会尝试访问中央仓库 - 首次加载 Maven 项目后,右键项目 →
Maven → Reload,并确认右下角没有黄色感叹号;如果有,点开看具体哪条依赖报Could not transfer artifact,说明该依赖没进本地仓库
Gradle 离线构建失败:gradle wrapper 是个隐藏的联网点
很多人以为只要把项目目录拷进内网就能 ./gradlew build,结果卡在 Downloading https://services.gradle.org/distributions/gradle-7.5-bin.zip——因为 gradle/wrapper/gradle-wrapper.properties 里写的还是远程 URL。
立即学习“Java免费学习笔记(深入)”;
- 提前在外网下载对应版本的
gradle-*.zip(注意是-bin.zip,不是-all.zip),放进内网某路径(如/opt/gradle/) - 修改项目中的
gradle/wrapper/gradle-wrapper.properties,把distributionUrl改成本地路径:file:///opt/gradle/gradle-7.5-bin.zip - 确保
GRADLE_USER_HOME指向内网已有缓存的目录(如export GRADLE_USER_HOME=/data/gradle-cache),否则第一次构建仍会尝试创建新缓存并触发联网 - 运行时加
--offline参数强制离线:./gradlew build --offline,否则 Gradle 会在解析依赖时悄悄回源校验










