温馨提示×

ubuntu java编译慢怎么办

小樊
38
2026-09-16 13:39:08
栏目: 编程语言

在 Ubuntu 上 Java 编译慢,可以从 项目结构、构建工具、JVM、系统环境 几个方向来优化。下面按「常见原因 → 解决方案」给你一套实用清单。


一、先确认是“哪里慢”

先区分是:

  • javac 本身慢(单个文件编译)
  • 构建工具慢(Maven / Gradle)
  • IDE 慢(IntelliJ / Eclipse)
time javac YourFile.java
time mvn compile
time gradle compileJava

二、Maven 编译慢(最常见)

1️⃣ 使用并行编译

mvn -T 4 compile
# 或
mvn -T 1C compile

2️⃣ 跳过无用步骤

mvn compile -DskipTests -Dmaven.test.skip=true

3️⃣ 使用增量编译(重要)

mvn compile -o   # offline,避免联网

4️⃣ 开启 Maven 守护(推荐)

mvn -Dmaven.wrapper.keep.archive=true

三、Gradle 编译慢

1️⃣ 开启并行 & 守护

gradle.properties

org.gradle.parallel=true
org.gradle.daemon=true
org.gradle.caching=true

2️⃣ 使用增量编译

gradle compileJava --parallel

3️⃣ 使用本地缓存

./gradlew build --offline

四、JVM / Java 层面优化

1️⃣ 使用较新 JDK(非常重要)

老 JDK 编译慢:

  • ✅ JDK 17 / 21 明显更快
  • ❌ JDK 8 慢很多
java -version

建议:

sudo apt install openjdk-21-jdk

2️⃣ 给 javac 更多内存

export JAVA_TOOL_OPTIONS="-Xmx2g"

Maven:

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

Gradle:

org.gradle.jvmargs=-Xmx4g

五、Ubuntu 系统层优化

1️⃣ 磁盘 IO 是瓶颈?

iostat -x 1

如果是机械硬盘:

  • 换 SSD
  • 把项目放 /tmp 或内存盘测试

2️⃣ 杀毒 / 索引软件影响

systemctl stop apt-daily.timer

3️⃣ 文件系统优化(高级)

  • 使用 ext4
  • 避免 ecryptfs(家目录加密非常慢)

六、IDE(IntelliJ)相关

IntelliJ 编译慢

  • 使用 Build, not Make
  • 开启:
    Settings → Build → Compiler → Parallel compilation
    
  • 增大内存:
    Help → Change Memory Settings
    

七、极端情况(大型项目)

  • 使用 Bazel / Buck
  • 模块化拆分(Java Module)
  • 远程编译缓存(Gradle Remote Cache)

八、快速自查清单 ✅

✅ JDK ≥ 17
✅ 并行编译
✅ 足够 JVM 内存
✅ SSD
✅ 关闭测试 / 文档
✅ 使用增量


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

  • 用的 JDK 版本
  • Maven 还是 Gradle
  • 项目 规模(文件数)
  • 是否在 Docker / WSL

我可以直接给你一套「最优配置」。

0