温馨提示×

ubuntujava编译慢怎么办

小樊
46
2026-10-16 02:34:28
栏目: 编程语言

在 Ubuntu 上 Java 编译慢,可能由 JDK 本身、编译参数、系统资源、构建工具、磁盘/文件系统、内存 等多方面原因导致。下面按「常见原因 → 对应解决办法」给你一套实用排查与优化方案。


一、先确认“慢”在哪

先区分是:

  • javac 编译慢
  • Maven / Gradle 构建慢
  • IDE(IDEA / Eclipse)编译慢
time javac YourFile.java

如果 javac 本身就慢,问题在 JDK / 系统;
如果 javac 快但 Maven/Gradle 慢,问题在构建工具。


二、JDK 层面优化(非常关键)

1️⃣ 使用较新 JDK(强烈推荐)

老 JDK 编译性能差:

  • ✅ JDK 11+
  • ✅ JDK 17(生产推荐)
  • ✅ JDK 21(最快)
java -version

Ubuntu 安装:

sudo apt install openjdk-17-jdk

2️⃣ 使用 server 编译器(默认一般是)

确认不是 client 模式:

java -version

看到 Server VM 是正常的。


3️⃣ 增加 JVM 编译内存(Maven / Gradle 常用)

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

三、Maven 编译慢优化

1️⃣ 开启并行编译

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

2️⃣ 跳过无用步骤

mvn compile -DskipTests

3️⃣ 使用增量编译

mvn compile

不要每次:

mvn clean compile

clean 会全量重编。


4️⃣ 使用本地仓库缓存

确认:

~/.m2/repository

不在网络盘(NFS / 云盘)。


四、Gradle 编译慢优化

1️⃣ 开启守护进程(默认开)

gradle compileJava --daemon

2️⃣ 开启并行 & 缓存

gradle.properties:

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

3️⃣ 不要用 clean

gradle build
# 不要
gradle clean build

五、Ubuntu 系统层面优化(很多人忽略)

1️⃣ 磁盘是 HDD?(最大瓶颈)

Java 编译是 大量小文件 IO

✅ 解决:

  • 换 SSD
  • 或把项目放 tmpfs(内存盘,仅测试用):
mkdir /tmp/java-proj
cp -r ~/project /tmp/java-proj

2️⃣ 文件系统问题

Ubuntu 推荐:

  • ✅ ext4
  • ❌ NTFS / FAT(Wine / 双系统盘)

3️⃣ 杀毒 / 索引软件干扰

关闭:

  • clamav
  • baloo
  • tracker
systemctl disable clamav-freshclam

4️⃣ 内存不足导致 swap

free -h

如果频繁 swap:

sudo swapoff -a

或加内存。


六、IDE(IntelliJ IDEA)编译慢

1️⃣ 使用 IDEA 自带编译器

Settings → Build → Compiler →
✅ Build project automatically


2️⃣ 增加 IDEA 内存

idea.vmoptions:

-Xmx4096m

3️⃣ 排除目录索引

Mark as Excluded:

  • target
  • build
  • node_modules

七、快速自检清单(5 分钟定位)

java -version
free -h
df -h
time javac Test.java
mvn -v

八、最常见“真凶”总结(经验)

  1. HDD 硬盘
  2. JDK 8 老版本
  3. 每次 clean
  4. 项目在 NFS / 云盘
  5. 内存太小(< 4G)

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

  • Ubuntu 版本
  • JDK 版本
  • Maven 还是 Gradle
  • 项目大小(模块数)

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

0 踩