IntelliJ导出jar包运行提示could not find or load main class错误问询
问题修复方案
- 首先确认MainBot.class的存放位置:由于你的代码未声明包名,
Main-Class: MainBot对应的类必须放在jar包的根目录,你打开jar包后第一层目录就能看到该文件才符合要求。如果该文件存放在BOOT-INF/classes、com/xxx等子目录下,必然会触发找不到主类的错误。 - 检查MANIFEST.MF的存放位置:该文件必须放在jar包根目录下的
META-INF文件夹内,不能嵌套在classes/META-INF这类子路径中。你当前把META-INF放在resources目录下的配置,会导致构建后META-INF被归档到classes目录下,Java运行时无法读取到主类配置。
修复方法:打开Project Structure -> Artifacts,选中你当前的jar配置,切换到Output Layout标签,把META-INF文件夹从编译输出目录拖到最顶层的<output root>节点下,重新构建即可。 - 可通过命令行临时验证问题:执行
java -cp 你的jar包文件名.jar MainBot,如果命令运行成功,就可以确认是manifest配置位置错误导致的问题;如果仍报错,说明你的类编译结果存放路径不符合要求。 - 额外注意:MANIFEST.MF的
Main-Class行冒号后必须有1个空格,文件末尾必须保留1个空行,格式错误也会导致配置读取失效。
内容的提问来源于stack exchange,提问作者Phake
相关产品推荐
相关产品推荐

