Ubuntu 上优化 Java 编译的实用方案
一 基础准备与环境优化
sudo apt update && sudo apt install openjdk-11-jdk openjdk-17-jdk。readlink -f $(which java),再在 ~/.bashrc 或 /etc/environment 中设置,例如 export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64,export PATH=$JAVA_HOME/bin:$PATH,执行 source ~/.bashrc 生效。sudo update-alternatives --config java 管理全局版本;在构建时通过工具参数启用并行(如 Maven 的 -T 1C/2C,Gradle 的 --parallel)。ulimit -n 65535),避免大量源文件/依赖时 I/O 受限。二 构建工具与编译参数优化
mvn clean compile -T 1C(按 CPU 核心数并行),必要时配合 -pl/-am 减少无关模块编译。gradle build --parallel --build-cache,开启构建缓存与并行任务。-J-Xms1g -J-Xmx2g(给 javac 的 JVM 更多堆,减少 GC 与 OOM)。-J-XX:+TieredCompilation -J-XX:CompileThreshold=1000,加快热点代码编译。-J-XX:+UseG1GC(吞吐与停顿均衡);在 JDK 11+ 且对停顿极敏感时,可评估 ZGC(示例:-J-XX:+UseZGC,并视版本启用实验选项)。export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64mvn clean compile -T 1C -Dmaven.compiler.fork=true -Dmaven.compiler.forceJavacCompilerUse=true -Dmaven.compiler.jvmargs="-Xms1g -Xmx2g -XX:+TieredCompilation -XX:CompileThreshold=1000 -XX:+UseG1GC"gradle build --parallel --build-cache --max-workers=4-J 前缀将参数传递给 javac 的 JVM;分层编译与 GC 选择可显著改善大型项目的编译耗时与稳定性。三 工程结构与依赖优化
-pl/-am/-amd 只构建目标模块及其依赖;在 Gradle 中使用 --include-build 或复合构建避免重复构建。mvn dependency:analyze 或 Gradle 的 dependencies 任务清理无用依赖。四 持续度量与渐进优化
mvn -X/gradle --profile)识别耗时最长的阶段(解析、编译、测试、打包)。