温馨提示×

ubuntu怎么优化java编译

小樊
42
2026-10-19 01:27:25
栏目: 编程语言

在 Ubuntu 上“优化 Java 编译”可以从编译速度、编译产物性能、构建工具配置、系统环境几个层面来做。下面按实用程度从高到低说明。


一、选择合适的 JDK(非常关键)

不同 JDK 对编译速度和运行时性能影响很大。

1. 使用较新的 JDK

  • JDK 17 / 21(LTS) 推荐
  • 新版本 javac 编译更快、生成代码更优

查看当前版本:

java -version
javac -version

安装 OpenJDK 21(Ubuntu 22.04+):

sudo apt update
sudo apt install openjdk-21-jdk

切换 JDK:

sudo update-alternatives --config java
sudo update-alternatives --config javac

二、开启并行编译(最立竿见影)

1. javac 并行编译

javac -d out -p src --module-source-path src $(find src -name "*.java")

或手动指定线程(构建工具更常用)

2. Maven 并行构建

mvn -T 4 compile
# 或自动线程数
mvn -T 1C compile

3. Gradle 并行

gradle.properties:

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

三、使用增量编译 & 构建缓存

Maven

mvn compile
# 不要每次 clean
mvn clean compile   # 慢

Gradle(强烈推荐)

./gradlew compileJava --build-cache

四、给编译器更多内存(避免卡顿)

Maven

~/.mavenrc 或环境变量:

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

Gradle

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

五、减少编译范围

  • 只编译需要的模块
mvn -pl module-a -am compile
  • 关闭不需要的注解处理器
mvn compile -Dmaven.compiler.proc=none

六、使用更快的构建工具

优先级(编译速度):

Gradle > Maven > 手动 javac

如果是大项目,强烈建议 Gradle + 增量编译。


七、Ubuntu 系统层优化

1. 使用 SSD(必须)

2. 提高文件监听上限(Gradle 常用)

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

3. 使用 tmpfs(可选,高级)

mkdir /tmp/build
mount -t tmpfs tmpfs /tmp/build

八、编译参数优化(谨慎)

javac -O -nowarn -d out src/**/*.java

⚠️ -O 在新 JDK 中已被忽略,优化主要在 JVM 层。


九、示例:推荐组合(实战)

✅ Ubuntu + JDK 21 + Gradle

org.gradle.parallel=true
org.gradle.caching=true
org.gradle.jvmargs=-Xmx4g -XX:+UseG1GC

如果你愿意,可以说:

  • 用 Maven 还是 Gradle
  • 项目规模(小 / 中 / 大型)
  • 是否 Spring / Android / 微服务

我可以直接给你最优配置模板。

0 踩