Java程序启动报错:找不到主类及UnsatisfiedLinkError问题求助
排查Java无法启动.jar文件(找不到主类/UnsatisfiedLinkError)的过程
问题背景
我最近碰到了个头疼的问题:自己编写的所有.jar程序都无法启动,Java一直提示找不到主类,而且不止我自己的程序,部分第三方.jar也有同样问题,所以肯定不是我代码里的清单文件配置错了。用命令行执行java -jar C:...\Programname.jar启动时,还会抛出java.lang.UnsatisfiedLinkError错误。
我一开始做的排查操作:
- 重新安装了Java Runtime(版本1.8.0_251)和JDK(版本11.0.7)
- 仔细检查了系统的PATH环境变量,确保配置正确
另外我还发现个有意思的点:不是所有第三方.jar都有问题,有一个第三方计算器.jar能正常运行,但另外两个同类型的第三方计算器.jar就会触发上述错误。
部分解决结果
后来终于找到一个关键问题:之前装的OpenJDK和当前的Java版本冲突了——OpenJDK的路径在PATH里优先级更高,虽然表面上版本号看起来一致,但实际Java运行时和编译器是不同的版本。
调整PATH变量的顺序,把官方JDK/JRE的路径移到OpenJDK前面之后,我自己写的.jar程序已经能正常启动了。不过那两个有问题的第三方计算器.jar还是不行,估计要么是这些程序本身存在兼容性问题,要么还有没排查到的潜在环境问题。
内容的提问来源于stack exchange,提问作者HattrickPat
相关产品推荐
相关产品推荐

