一、错误
java.lang.ClassNotFoundException: view.MainFrame
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
at com.exe4j.runtime.WinLauncher.main(Unknown Source)
如图所示:
二、原因分析
遇到这个问题的主要原因很可能是 exe4j 无法找到正确的主类。我们可以在exe4j配置java包的这一步进行验证:
如图,这一步让我们选择要转换的jar包,添加之后需要选择jar包的主类,但是我选择主类却是空白的列表,也就是说exe4j工具没有找到主类。
我即使手动添加了,后面依然报错:
问题的原因是exe4j没有找到程序的主类,检查思路:
1、先检查我们的jar包清单文件“MANIFEST.MF”到底有没有配置程序的主类
如果Main-Class没有,先加上试试,其实我们打好的jar包,首先通过cmd命令窗口执行java -jar xxxx.jar自测一下能不能运行,可以运行之后再通过exe4j工具打包。
2、如果你的“MANIFEST.MF”已经配置了Main-Class主类,还是报同样的错误,并且通过java -jar xxxx.jar也是能正常运行的,那很大可能你打的jar包存在问题。
3、我是利用eclipse中自带的export功能生成的jar包,尝试了两种导出方式最终都是命令窗口可以运行,exe4j导入就是找不到主类。
4、最后我重新使用IntelliJ IDEA进行配置打包才可以。