Ubuntu Java运行时错误排查与修复指南
一 快速定位与通用排查
二 常见错误对照与修复
| 错误信息或现象 | 可能原因 | 修复建议 |
|---|---|---|
| UnsupportedClassVersionError | 编译与运行JDK版本不一致 | 统一版本;如用Java 8/11编译运行,必要时用javac -source 1.8 -target 1.8重编译 |
| NoClassDefFoundError / ClassNotFoundException | 缺少依赖(如JavaFX)或类路径错误 | 安装依赖(如sudo apt-get install openjfx),检查**-cp/-classpath**与模块路径 |
| Error: Could not find or load main class | 主类不存在、包声明与目录不匹配、类路径不含当前目录 | 确认文件名为Main.java且类为public class Main;包结构匹配目录;运行时使用java -cp . your.Main |
| Permission denied | 脚本/可执行JAR无执行权限 | 执行chmod +x your-app或以合适用户运行 |
| OutOfMemoryError | 堆内存不足或内存泄漏 | 调整JVM参数(如**-Xms/-Xmx**),开启**-XX:+HeapDumpOnOutOfMemoryError并用Eclipse MAT**分析堆转储 |
| 程序无法启动且无明确报错 | 端口被占用、权限不足、日志目录不可写 | 检查端口占用(如**netstat -tulpen |
| 图形界面不显示(JavaFX/Swing) | 缺少图形环境或JavaFX未配置 | 安装openjfx,在无头环境使用合适的渲染/虚拟显示方案,确保模块/库路径正确 |
三 环境与变量配置
四 实战示例 从零运行HelloWorld并排查
五 进阶排错与优化