温馨提示×

ubuntujava编译编码如何指定

小樊
47
2026-10-16 02:50:23
栏目: 编程语言

在 Ubuntu(Linux)下使用 Java 编译(javac) 时,可以通过 -encoding 参数来指定源码文件的编码。


一、javac 指定编码(最常用)

javac -encoding UTF-8 Hello.java

如果是多个文件或整个目录:

javac -encoding UTF-8 *.java

或:

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

参数说明:

  • -encoding UTF-8:指定源文件编码
  • -d out:指定编译输出目录

二、Java 运行时指定编码(java)

运行时一般不用指定源码编码,但可指定 JVM 默认字符集:

java -Dfile.encoding=UTF-8 Hello

常用于防止中文乱码。


三、Maven 项目指定编码(推荐)

在 pom.xml 中:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>

或在 compiler 插件中:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

四、Gradle 项目指定编码

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

五、查看 Ubuntu 当前编码

locale

常见推荐:

export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

六、常见坑提醒

  1. 文件实际编码 ≠ 你以为的编码
    file Hello.java
    
  2. Windows 写的 .java 文件可能是 GBK
  3. 不指定编码时,javac 使用系统默认编码(Ubuntu 一般是 UTF-8)

如果你愿意,可以告诉我:

  • 用的是 javac / Maven / Gradle
  • 出现的是 编译报错还是乱码

我可以给你更精确的方案。

0 踩