温馨提示×

ubuntu java编译慢怎么解决

小樊
39
2026-09-22 15:38:48
栏目: 编程语言

在 Ubuntu 上 Java 编译慢,通常可以从工具链、依赖管理、磁盘/文件系统、资源限制、构建配置几个方向来排查和优化。下面按「最常见 → 进阶」给你一套实用方案。


一、最常见原因与快速优化

1. 使用增量编译(最重要)

不要每次都 clean

# 慢
mvn clean compile

# 快
mvn compile

Gradle 同理:

gradle build   # 不要加 clean

2. 开启并行编译

Maven

mvn -T 4 compile
# 或自动识别 CPU 核心数
mvn -T 1C compile

Gradle

gradle build --parallel

或在 gradle.properties

org.gradle.parallel=true
org.gradle.workers.max=4

3. 使用构建缓存

Gradle(强烈推荐)

org.gradle.caching=true

Maven

mvn -o compile   # offline 模式

二、JDK 与编译器层面优化

4. 使用较新 JDK(明显提升)

Java 编译速度随版本提升明显:

  • Java 8 → 11 → 17 → 21

查看当前版本:

java -version

建议使用:

  • OpenJDK 17 / 21
  • GraalVM(JIT 更快)

5. 增大编译器内存

编译慢有时是 GC 频繁。

Maven:

export MAVEN_OPTS="-Xmx2g -XX:+UseG1GC"

Gradle:

org.gradle.jvmargs=-Xmx4g -XX:+UseG1GC

三、磁盘与文件系统问题(非常常见)

6. 避免在以下位置编译

❌ 慢:

  • NTFS / FAT(WSL 挂载)
  • 网络盘(NFS、SMB)
  • 加密盘

✅ 快:

  • 本地 ext4
  • SSD

如果你用 WSL

# 项目放在 Linux 文件系统
~/project
# 不要放 /mnt/c

7. 关闭杀毒/索引工具

Ubuntu 常见:

systemctl stop apt-daily.timer

IDE(如 IDEA):

  • 关闭 File Watcher
  • 排除 target / build 目录

四、依赖与网络优化

8. 使用本地 Maven 仓库镜像

~/.m2/settings.xml

<mirror>
  <id>aliyun</id>
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>

Gradle:

systemProp.http.proxyHost=...

9. 避免重复下载依赖

mvn dependency:go-offline

五、IDE 相关(如果你用 IntelliJ IDEA)

10. 使用 IDEA 内置编译

  • ✅ Build → Compile
  • ❌ 每次用 mvn clean

开启:

Settings → Build → Compiler → Parallel compilation

六、终极方案(大型项目)

方案 效果
Gradle Build Cache ⭐⭐⭐⭐
Remote Build Cache ⭐⭐⭐⭐⭐
Bazel / Buck ⭐⭐⭐⭐⭐
模块化(JPMS) ⭐⭐⭐

七、快速自查清单 ✅

  • [ ] 是否每次都 clean
  • [ ] 是否用了并行编译
  • [ ] JDK 是否 ≥ 17
  • [ ] 是否在 SSD + ext4
  • [ ] 是否在 WSL 的 /mnt 下
  • [ ] Maven/Gradle 内存是否够

如果你愿意,可以告诉我:

  • 用的 Maven 还是 Gradle
  • Java 版本
  • 是否在 WSL
  • 项目规模(模块数 / 代码量)

我可以直接给你针对性配置

0