线程“AWT-EventQueue-2”中的异常java.lang.NoClassDefFoundError

时间:2013-04-16 11:24:42

标签: java eclipse noclassdeffounderror

我在Eclipse签名的web applet中收到了上面的错误。我将不胜感激任何帮助......

它声明找不到我的班级:

Exception in thread "AWT-EventQueue-2" java.lang.NoClassDefFoundError: com/dermalog/common/exception/DermalogException

虽然我有图像证明它包含在构建中:

Image1 Image2

我如何添加我的jar文件:

  1. 制作了一个“lib”文件夹
  2. 将jar文件复制到“lib”文件夹
  3. 点击项目
  4. 上的“属性”
  5. 去构建路径,库
  6. 添加了jar参考

1 个答案:

答案 0 :(得分:1)

在大多数情况下,在Eclipse项目中添加jar项目Java Build Path只意味着将它添加到用于编译的类路径中。在Eclipse中运行应用程序或applet时,构建路径上设置的项目也用于创建类路径。

但是,当applet在不同的上下文中运行时,构建路径没有说明applet的类路径,例如:在网页上。在那里,需要确保classpath包含运行应用程序所需的所有jar。

有两种简单的方法可以做到这一点:

  • Add a manifest file到您的JAR并在那里指定类路径(必需的JAR)。然后,在将JAR部署/复制到调用它的位置时,也要复制依赖项JAR。
  • 将您的applet所依赖的JAR中的所有类包含在您的applet的JAR中。 Eclipse的Export函数允许这样做。

编辑: 好的,我检查了你的jar文件,发现了这个:

  • MANIFEST.MF没有类路径定义。它应该包含如下行:

Class-path: dermalog.afis.drawing.compression.jar dermalog.afis.fingercode.jar dermalog.imaging.capturing.jar

  • 依赖jar不应该包含在依赖jar中。相反,它们应该只是放在同一目录中(或在子目录中 - 但在类路径中也使用该子目录)。

我上面链接的页面解释了这一点。