eclipse导出jar java.lang.NoClassDefFoundError问题

时间:2011-01-13 06:15:43

标签: java eclipse jar

使用eclipse进行编译和运行时没有问题,但是当我使用这些设置导出为jar时,我得到了Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: gnu/io/SerialPortEventListener

jar导出器没有导出我的扩展jar库?

alt text alt text

4 个答案:

答案 0 :(得分:2)

来自Exceptions JavaDoc的这句话有助于理解出现了什么问题:

  

当编译当前正在执行的类时,搜索的类定义存在,但无法再找到该定义。

你在eclipse上构建应用程序没有错误。因此, eclipse中的类路径定义足以编译所有类。

现在你导出它,运行它的 out eclipse并遇到这个错误。导出的应用程序不再使用eclipse项目类路径定义。并且该文件不包含包含gnu.io.SerialPortEventListener的库。

一般解决方案是:修复导出的jar的类路径问题。

答案 1 :(得分:1)

这可能是一个依赖问题,但是,不要混淆ClassNotFoundException and NoClassDefFoundError。基本上,它是说初始化中存在一个问题:gnu/io/SerialPortEventListener我会检查该类是否有错误作为起点。

答案 2 :(得分:1)

我用fatjar

解决了这个问题

答案 3 :(得分:1)

您也可以考虑使用名为WinRun4J的开源工具。

可在http://winrun4j.sourceforge.net/处找到。

我发现这很容易使用。