在 Debian 上“编译 Java 报错”是一个非常常见但原因很多的问题。下面我按最常见的原因 → 对应报错示例 → 解决方法来系统说明,你可以对照自己的情况。
javac: command not found
或
bash: javac: 未找到命令
Debian 默认可能只装了 default-jre,而 javac 在 JDK 里。
sudo apt update
sudo apt install default-jdk
验证:
javac -version
Error: JAVA_HOME is not set
查看 Java 安装路径:
sudo update-alternatives --config java
例如:
/usr/lib/jvm/java-17-openjdk-amd64
设置环境变量(加到 ~/.bashrc 或 /etc/profile):
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
生效:
source ~/.bashrc
invalid source release: 17
或
class file version 61.0, this version of the Java Runtime only recognizes class file versions up to 52.0
查看版本:
java -version
javac -version
统一版本,例如安装 Java 17:
sudo apt install openjdk-17-jdk
javac Hello.java.java
或目录不对:
javac src/Hello.java
# 但类里写的是 package com.demo;
javac Hello.java
java Hello
有包结构时:
javac -d out src/com/demo/Hello.java
java -cp out com.demo.Hello
Could not find or load main class
package does not exist
确保:
sudo apt install maven
或
sudo apt install gradle
并正确执行:
mvn compile
mvn package
Permission denied
chmod +x your_script.sh
或不要用 /usr/ 下目录随便写文件。
openjdk-17-jdkopenjdk-21-jdk(需 backports)如果你愿意,可以把完整报错信息或编译命令发出来,我可以:
只要告诉我:
cat /etc/os-release)