Eclipse运行反编译Jar报错:Could not find or load main class main
问题分析与解决
核心结论:main.class的位置完全错误
JRE System Library是Eclipse专门存放JDK/JRE自带系统类的目录,你的自定义反编译类放在这里,Eclipse的类加载器根本不会将其识别为项目的可执行类,这就是找不到主类的直接原因。
具体修复步骤
- 迁移类文件位置:把反编译得到的
main.class及其他相关类文件,从JRE System Library中移出,放到项目的编译输出目录(比如bin)或者源代码目录(比如src)。如果是反编译出的.java文件,放在src目录让Eclipse重新编译;如果是.class文件,要对应好包结构放到bin目录的对应路径下。 - 确认全限定类名:检查反编译代码开头是否有
package xxx;声明,主类的完整类名应该是包名.类名(比如com.tracker.main),运行配置里必须填写这个全限定名,不能只写main。 - 重新配置运行项:
- 右键项目 → 运行方式 → 运行配置 → Java应用程序
- 新建配置,点击「主类」栏的搜索按钮,选择正确的带包名的主类
- 切换到「类路径」标签,确保项目的
bin或src目录已被添加到类路径中,不能仅依赖JRE System Library
- 修复编译错误:反编译后的代码可能存在语法问题(比如变量名无效、代码结构不完整),如果迁移后编译报错,需要先修正这些错误才能正常运行。
内容的提问来源于stack exchange,提问作者Caledonian26
相关产品推荐
相关产品推荐

