温馨提示×

ubuntu java编译失败为什么

小樊
46
2026-09-22 09:25:32
栏目: 编程语言

Ubuntu 上 Java 编译失败 的原因非常多,下面按常见原因 + 排查方法给你一个系统清单,你可以对照看看是哪种情况。


一、最常见原因

1️⃣ 没有安装 JDK(只装了 JRE)

症状

javac: command not found

或

Command 'javac' not found

解决

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

检查:

java -version
javac -version

两个都要有。


2️⃣ JAVA_HOME 没配置

症状

  • IDE 能编,命令行不行
  • Maven / Gradle 报错找不到 JDK

解决

sudo update-alternatives --config java

设置 JAVA_HOME:

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

写入 ~/.bashrc 永久生效。


3️⃣ 多个 Java 版本冲突

sudo update-alternatives --config java
sudo update-alternatives --config javac

确保 java 和 javac 版本一致。


二、代码 / 编译命令问题

4️⃣ 文件名和类名不一致

Java 要求:

public class Hello {}

文件必须叫 Hello.java

否则:

class Hello is public, should be declared in a file named Hello.java

5️⃣ 编译命令用错

✅ 正确:

javac Hello.java

❌ 错误:

java Hello.java   # Java 11+ 才行

6️⃣ 包名(package)问题

如果有:

package com.demo;

必须在:

com/demo/xxx.java

编译:

javac com/demo/Main.java

三、权限 / 路径问题

7️⃣ 没有写权限

Permission denied

解决:

chmod -R 755 your_project

8️⃣ 中文或空格路径

尽量避免:

/桌面/我的项目/Test.java

四、构建工具问题(Maven / Gradle)

9️⃣ Maven 找不到 JDK

mvn -version

如果报错:

JAVA_HOME not set

设置:

export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac))))

五、快速自检清单 ✅

请按顺序检查:

  1. javac -version 能用吗?
  2. java 和 javac 版本一致吗?
  3. 文件名 = 类名?
  4. 包路径正确吗?
  5. JAVA_HOME 设置了?

六、你可以直接贴错误

如果你愿意,把完整报错信息贴出来,例如:

javac Test.java
Test.java:3: error: ...

我可以直接帮你定位到具体哪一行、什么原因。

0 踩