温馨提示×

ubuntu中如何优化java编译

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

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


一、使用合适的 JDK 与版本

  1. 使用较新的 JDK

    • JDK 11+ 在 javac 性能上有明显提升
    • JDK 17 / 21 长期支持,编译器和 JVM 更优
    sudo apt install openjdk-21-jdk
    java -version
    
  2. 避免使用过老的编译器

    • 老项目建议至少升级到 JDK 11

二、优化 javac 编译参数

1. 指定编码(避免重复检测)

javac -encoding UTF-8 *.java

2. 关闭不必要的检查(开发期)

javac -Xlint:none

3. 使用增量编译(重要)

不要每次全量编译:

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

配合构建工具效果更佳。


三、使用构建工具并开启并行 / 缓存

1. Maven 优化

mvn compile -T 4        # 并行编译
mvn clean compile -o    # 离线模式

启用构建缓存(Maven 3.9+):

mvn -Dmaven.build.cache.enabled=true compile

2. Gradle 优化(强烈推荐)

./gradlew compileJava --parallel --build-cache

gradle.properties:

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

四、利用 ccache / 编译缓存(高级)

Java 本身不支持 ccache,但:

  • Gradle Build Cache
  • Bazel / Maven 缓存

可显著减少重复编译时间。


五、Ubuntu 系统级优化

1. 提高文件描述符限制

ulimit -n 65536

2. 使用 tmpfs 编译(大型项目)

mkdir /tmp/build
mvn -Dmaven.repo.local=/tmp/build compile

3. 使用 SSD + 足够内存

  • 编译主要瓶颈是 磁盘 IO + CPU

六、产物运行性能优化(编译期)

javac -O Main.java

或在运行期:

java -server -XX:+TieredCompilation App

七、常见误区

❌ 多次 mvn clean ✅ 尽量增量编译

❌ 使用默认 512MB JVM ✅ 显式设置 -Xmx


八、推荐组合(实战)

  • JDK 21
  • Gradle + Build Cache
  • SSD + 8G+ 内存
  • org.gradle.daemon=true

如果你能说明:

  • 用的 Maven 还是 Gradle
  • 项目规模(文件数 / 模块数)

我可以给你一套针对性优化配置。

0 踩