exe4j打包exe报错:找不到主类

  • Post author:
  • Post category:其他


一、错误

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进行配置打包才可以。

三、几种Java打包jar文件的方法分享


使用IntelliJ IDEA打包Java普通项目生成可执行jar(通过exe4j生成.exe可行)


使用eclipse将Java项目打包成jar文件的方法


eclipse将项目打包成jar文件的两种方法



版权声明:本文为u010709330原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。