在 Debian 上 Java 程序“闪退”(启动一下就退出,无明显报错)通常由下面几类原因导致。你可以按顺序排查:
现象:双击或用脚本启动,窗口一闪就没。
检查:
java -version
如果提示:
command not found → 没装 Java解决:
sudo apt update
sudo apt install default-jre
# 或
sudo apt install openjdk-17-jdk
现象:服务器 / SSH 下运行 GUI Java 程序直接退出。
原因:
DISPLAY检查:
echo $DISPLAY
如果是空的,说明没有图形环境。
解决:
export DISPLAY=:0
-Djava.awt.headless=true(仅限非 GUI)现象:启动即退,日志里可能有 Java heap space 或直接被杀。
检查:
dmesg | grep -i kill
free -h
解决:
-Xmxjava -Xmx512m -jar app.jar
现象:命令行一闪而过。
一定要看输出:
java -jar yourapp.jar
或:
./start.sh 2>&1 | tee log.txt
常见错误:
ClassNotFoundExceptionNoClassDefFoundErrorUnsupportedClassVersionError(JDK 版本不对)现象:脚本运行闪退。
检查脚本是否:
&)但父进程退出exec示例正确脚本:
#!/bin/bash
exec java -jar /opt/app/app.jar
Debian 可能是:
查看:
uname -m
java -version
ls -l app.jar
chmod +x app.jar
如果是服务:
journalctl -u yourapp.service -n 50
java -version 正常如果你愿意,可以把下面信息发我,我能直接定位:
java -version)cat /etc/os-release)我可以帮你精确到“哪一行配置错了”。