温馨提示×

ubuntu编译java要注意啥

小樊
43
2026-10-24 23:42:22
栏目: 编程语言

在 Ubuntu 上编译 Java,通常需要注意下面这些点,按“常见坑 + 建议”来说明:


1. 先确认是否装了 JDK(不是 JRE)

很多人只装了 JRE,结果 javac 不存在。

java -version
javac -version

如果 javac 报错:

sudo apt update
sudo apt install default-jdk
# 或指定版本
sudo apt install openjdk-17-jdk

2. JAVA_HOME 环境变量

编译/构建工具(Maven、Gradle)常依赖 JAVA_HOME。

查看 Java 安装路径:

which javac
readlink -f $(which javac)

一般在:

/usr/lib/jvm/java-17-openjdk-amd64

设置:

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

可写入:

~/.bashrc

3. 源文件编码问题(中文乱码)

Ubuntu 默认 UTF-8,但 Windows 写的 .java 可能是 GBK。

编译时指定:

javac -encoding UTF-8 *.java

4. 包名和目录结构必须一致

例如:

package com.demo;

文件必须在:

com/demo/Main.java

错误示例:

Main.java 里写 package com.demo; 但文件在根目录

会报:

package com.demo does not exist

5. classpath 问题

如果引用了第三方 jar:

javac -cp lib/xxx.jar Main.java

运行:

java -cp .:lib/xxx.jar Main

注意:Linux 用 : 分隔,Windows 用 ;


6. Java 版本不兼容

高版本编译,低版本运行会报错:

UnsupportedClassVersionError

指定版本:

javac -source 11 -target 11 Main.java

(推荐直接用对应 JDK 版本)


7. 文件权限(少见但有)

如果 .java 文件没读权限:

chmod +r *.java

8. 使用构建工具更省事

项目稍大就用:

  • Maven
sudo apt install maven
mvn compile
  • Gradle
sudo apt install gradle
gradle build

9. 一个最小示例

mkdir -p com/demo
cat > com/demo/Main.java <<EOF
package com.demo;
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello Ubuntu");
    }
}
EOF

javac com/demo/Main.java
java com.demo.Main

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

  • Ubuntu 版本
  • Java 版本
  • 是手动 javac 还是 Maven/Gradle
  • 具体报错信息

我可以直接帮你定位问题。

0 踩