Eclipse导出可执行Jar文件报错:无法找到或加载主类smallGame.SmallGame
解决Eclipse导出可执行Jar后找不到主类的问题
遇到这种情况,大概率是Jar的主类配置、Java环境或者导出过程出了问题,下面是几个针对性的解决方案:
1. 检查导出时的主类配置是否正确
这是最常见的原因。你在Eclipse导出Runnable JAR时,一定要确保主类的全限定名完全正确(也就是smallGame.SmallGame)。
- 重新导出步骤:右键项目 →
Export→ 选择Java > Runnable JAR file - 在
Launch configuration下拉框里,选择你之前成功运行过的那个配置(如果有的话,它会自动关联正确的主类) - 如果没有现成的运行配置,点击
Browse手动选择smallGame.SmallGame类,确认路径无误后再完成导出
2. 验证Jar包的Manifest.mf文件
可执行Jar的核心是META-INF/Manifest.mf里的Main-Class属性,要是这个配置错了或缺失,就会找不到主类。
- 用解压工具打开你的Jar包,找到
META-INF/Manifest.mf文件查看 - 确保里面有一行:
Main-Class: smallGame.SmallGame(注意冒号后面必须有一个空格,文件末尾还要留一个空行) - 如果没有这行,要么重新按正确配置导出,要么手动修改Manifest后再放回Jar包
3. 检查Java运行环境版本是否兼容
如果你的项目是用高版本Java编译的,但运行时用了低版本Java,也会出现找不到类的错误:
- 终端里输入
java -version查看当前运行的Java版本,输入javac -version查看编译时的版本 - 确保运行版本 ≥ 编译版本,要是版本不匹配,要么升级系统默认Java,要么在终端用指定版本的Java运行:
/path/to/your/jdk/bin/java -jar yourJarFileName.jar
4. 确认Jar包是否完整未损坏
导出过程中可能因为中断或配置错误,导致Jar里缺失类文件:
- 在终端输入
jar tf yourJarFileName.jar,查看输出列表里有没有smallGame/SmallGame.class文件 - 如果找不到这个文件,说明导出不完整,重新导出时注意:
- 确保选择的是正确的项目
- 关于依赖库的选项,根据需求选
Extract required libraries into generated JAR(把依赖打包进Jar)或者Package required libraries into generated JAR(依赖作为嵌套Jar)
5. 修复Windows下Jar文件的关联问题
如果双击没反应,可能是系统把Jar关联到了错误的Java程序:
- 右键Jar文件 → 打开方式 → 选择其他应用 → 找到你JDK目录下的
javaw.exe(比如C:\Program Files\Java\jdk-11\bin\javaw.exe) - 勾选"始终使用此应用打开.jar文件",之后再双击试试,或者直接用命令行
javaw -jar yourJarFileName.jar测试运行
内容的提问来源于stack exchange,提问作者Dwadelfri
相关产品推荐
相关产品推荐

