在 Debian 上“Java 无法编译”通常不是 Java 本身坏了,而是环境或命令用错了。下面按最常见原因逐一说明,你可以对照排查。
这是最常见原因。
javac -version
如果提示:
command not found: javac
说明没装 JDK。
sudo apt update
sudo apt install default-jdk
安装后再次检查:
javac -version
有时装了 JDK,但 shell 找不到 javac。
ls /usr/lib/jvm/
例如:
java-17-openjdk-amd64
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
写入永久生效:
nano ~/.bashrc
添加上面两行,然后:
source ~/.bashrc
很多人会写成:
java Hello.java
这是错的(除非 Java 11+ 的单文件临时运行)。
javac Hello.java
java Hello
Java 要求:
public class HelloHello.java错误示例:
public class Test {
}
但文件叫 Hello.java → 编译失败。
如果源码在只读目录:
javac Hello.java
可能报错或无 .class 文件生成。
解决:
cd ~
mkdir javatest
cd javatest
查看已安装版本:
update-alternatives --list java
update-alternatives --list javac
切换默认版本:
sudo update-alternatives --config javac
| 报错 | 原因 |
|---|---|
javac: command not found |
没装 JDK |
class not found |
没先 javac |
public class X must be in X.java |
文件名不对 |
permission denied |
目录无写权限 |
如果你愿意,可以把具体报错信息或你执行的命令贴出来,我可以直接帮你定位是哪一条原因。