在 Ubuntu 上 Java 编译慢,可能由 JDK 本身、编译参数、系统资源、构建工具、磁盘/文件系统、内存 等多方面原因导致。下面按「常见原因 → 对应解决办法」给你一套实用排查与优化方案。
先区分是:
time javac YourFile.java
如果 javac 本身就慢,问题在 JDK / 系统;
如果 javac 快但 Maven/Gradle 慢,问题在构建工具。
老 JDK 编译性能差:
java -version
Ubuntu 安装:
sudo apt install openjdk-17-jdk
确认不是 client 模式:
java -version
看到 Server VM 是正常的。
export JAVA_OPTS="-Xmx2g -XX:+UseG1GC"
mvn compile -T 4
# 或
mvn compile -T 1C
mvn compile -DskipTests
mvn compile
不要每次:
mvn clean compile
clean 会全量重编。
确认:
~/.m2/repository
不在网络盘(NFS / 云盘)。
gradle compileJava --daemon
gradle.properties:
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2g
gradle build
# 不要
gradle clean build
Java 编译是 大量小文件 IO
✅ 解决:
mkdir /tmp/java-proj
cp -r ~/project /tmp/java-proj
Ubuntu 推荐:
关闭:
clamavbalootrackersystemctl disable clamav-freshclam
free -h
如果频繁 swap:
sudo swapoff -a
或加内存。
Settings → Build → Compiler →
✅ Build project automatically
idea.vmoptions:
-Xmx4096m
Mark as Excluded:
targetbuildnode_modulesjava -version
free -h
df -h
time javac Test.java
mvn -v
如果你愿意,可以告诉我:
我可以直接给你针对性配置。