温馨提示×

ubuntu java编译慢怎么破

小樊
38
2026-10-24 23:41:23
栏目: 编程语言

在 Ubuntu 上 Java 编译慢,通常不是 JVM 本身慢,而是环境、参数、工具链或项目结构的问题。下面按「最常见 → 进阶」给你一套可落地的优化方案。


一、先确认“慢”在哪里(很重要)

先用最简单方式判断:

time javac -d out src/**/*.java

如果:

  • javac 本身慢 → 看下面 2~4
  • mvn / gradle 慢 → 看 5~7
  • IDE(IDEA/Eclipse)慢 → 看 8

二、JDK 版本 & 类型(最容易忽略)

✅ 用正确的 JDK

  • 不要用 OpenJDK headless 的老版本
  • 推荐:
    • OpenJDK 17 / 21(LTS)
    • 或 GraalVM(编译期无所谓,运行期强)

查看:

java -version

切换:

sudo update-alternatives --config java

三、给 javac 加并行 & 内存参数

1️⃣ 增加编译器内存

export JAVA_TOOL_OPTIONS="-Xmx2g"

2️⃣ 开启并行编译(Java 9+)

javac --multi-release 17 -d out $(find src -name "*.java")

或使用 --source-path 避免重复扫描。


四、避免“全量编译”

✅ 增量编译

  • 不要每次 clean
  • 使用:
    • mvn compile
    • gradle compileJava
  • 而不是 mvn clean package

五、Maven 编译慢(最常见)

1️⃣ 开并行

mvn -T 4 compile

或:

mvn -T 1C compile

2️⃣ 跳过无用步骤

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

3️⃣ 使用增量编译器

mvn compile -o   # offline

4️⃣ 换更快插件

<plugin>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.11.0</version>
</plugin>

六、Gradle 编译慢(更可控)

✅ 必开配置(gradle.properties)

org.gradle.parallel=true
org.gradle.caching=true
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx4g

✅ 用构建缓存

gradle compileJava --build-cache

七、文件系统 & 磁盘(Ubuntu 特有坑)

❌ 不要在:

  • NTFS / FAT
  • 虚拟机共享目录
  • NFS

✅ 推荐:

  • 本地 ext4
  • SSD
  • 项目放 /home/you/project

八、IDE(IDEA)编译慢

设置:

  • Build → Compile independent modules in parallel
  • 增大 IDEA 内存
  • 关闭:
    • 实时语法检查
    • 不必要的 Annotation Processor

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

  • 模块化(JPMS)
  • Bazel / Buck
  • 头文件预编译(C++ 思路,Java 不常用)

十、你可以直接告诉我

如果你愿意,我可以精准定位:

  • 用的是 javac / mvn / gradle / IDEA?
  • 项目规模(文件数 / 模块数)?
  • Ubuntu 版本 + JDK 版本?

我可以直接给你一条最优命令。

0 踩