【发布时间】:2012-01-11 18:12:03
【问题描述】:
使用 eclipse 编译和运行时没有问题,但是当我使用这些设置导出为 jar 时,我得到了Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: gnu/io/SerialPortEventListener。
jar 导出器没有导出我的扩展 jar 库?
【问题讨论】:
使用 eclipse 编译和运行时没有问题,但是当我使用这些设置导出为 jar 时,我得到了Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: gnu/io/SerialPortEventListener。
jar 导出器没有导出我的扩展 jar 库?
【问题讨论】:
Exceptions JavaDoc 中的这句话有助于理解问题所在:
在编译当前执行的类时,搜索到的类定义存在,但无法再找到该定义。
您已经在 Eclipse 上构建了应用程序,没有任何错误。所以 inside eclipse 的类路径定义足以编译所有类。
现在你导出它,在 eclipse 中运行 out 并遇到该错误。导出的应用程序不再使用 eclipse 项目类路径定义。并且当前不包括包含gnu.io.SerialPortEventListener 的库。
一般的解决办法是:修复导出的jar的classpath问题。
【讨论】:
这可能是一个依赖问题,但是,不要混淆ClassNotFoundException and NoClassDefFoundError。基本上,它是说初始化有问题:gnu/io/SerialPortEventListener 我会检查该类是否有错误作为起点。
【讨论】:
我已经用 fatjar 解决了
【讨论】:
【讨论】: