温馨提示×

CentOS如何设置Java编译参数

小樊
39
2026-07-21 02:23:27
栏目: 编程语言

CentOS 系统中设置 Java 编译参数,通常需要区分 javac 编译参数运行参数 以及 如何在构建工具中配置。下面按常见场景详细说明。


一、直接使用 javac 编译时设置参数

1️⃣ 常用编译参数示例

javac -source 1.8 -target 1.8 -encoding UTF-8 -d out src/Hello.java

常用参数说明

参数 说明
-source 指定源码版本
-target 指定生成 class 的 JVM 版本
-encoding 指定源码编码
-d 指定编译输出目录
-cp / -classpath 指定依赖 classpath
-g 生成调试信息
-deprecation 显示过时 API 警告
-Xlint 开启更多编译检查

推荐写法(Java 9+)

javac --release 8 -encoding UTF-8 -d out src/Hello.java

二、设置 Java 编译环境变量

1️⃣ 设置 JAVA_HOME

sudo vi /etc/profile

添加:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH

生效:

source /etc/profile

验证:

java -version
javac -version

三、Maven 项目中设置 Java 编译参数 ✅(最常见)

1️⃣ 在 pom.xml 中配置 maven-compiler-plugin

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.11.0</version>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>UTF-8</encoding>
      </configuration>
    </plugin>
  </plugins>
</build>

✅ Java 9+ 推荐方式:

<release>8</release>

完整示例:

<configuration>
  <release>8</release>
  <encoding>UTF-8</encoding>
</configuration>

四、Gradle 项目中设置编译参数

1️⃣ build.gradle

tasks.withType(JavaCompile) {
    options.encoding = 'UTF-8'
    sourceCompatibility = '1.8'
    targetCompatibility = '1.8'
}

或(推荐)

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(8)
    }
}

五、运行 Java 程序时的参数(补充)

1️⃣ JVM 参数

java -Xms512m -Xmx1024m -XX:+UseG1GC -jar app.jar

常用:

  • -Xms:初始堆
  • -Xmx:最大堆
  • -XX:+PrintGCDetails:GC 日志

六、查看当前 CentOS Java 版本

java -version
alternatives --config java

切换 Java 版本:

sudo alternatives --config java

七、常见问题

❓ CentOS 7 默认是 OpenJDK 1.8

yum install java-1.8.0-openjdk-devel

❓ Java 11+ 不能用 -source / -target

✅ 使用:

javac --release 11

总结

场景 设置方式
手动 javac javac -encoding UTF-8 --release 8
Maven maven-compiler-plugin
Gradle JavaCompiletoolchain
环境变量 JAVA_HOME
JVM 参数 java -Xmx...

如果你能提供 具体场景(如 Maven / Spring Boot / Docker / Jenkins),我可以给你更精确的配置示例。

0