ClassNotFoundException& NoClassDefFoundError(为什么??)

时间:2014-07-21 08:17:56

标签: java noclassdeffounderror classnotfoundexception leap-motion cytoscape

我想制作Cytoscape Simple App(就像插件程序一样)。

所以我应该制作一个.jar文件,并将其安装在Cytoscape程序中。

我的问题如下:

我将向您展示2个案例。

  

有6个类(A,B,C,D,E,F)和2个.jar文件(代表其他   API)

     

A(CytoscapeLeapMotionApp)是主要类(实际上它并不包括   main方法,但它是安装App时的第一个类运行。

     

C,E是我制作的课程。

     

B,D在1.jar。

     

F(听众)在2.jar(跳跃)。

  • 案例1

    A延伸B

    C实例是在A

    创建的

    C延伸D

    E实例是在C

    创建的

    E延伸F

结果:

Caused by: java.lang.NoClassDefFoundError: com/leapmotion/leap/Listener     at
CytoscapeLeapMotionApp.<init>(CytoscapeLeapMotionApp.java:9)    ... 21
more

Caused by: java.lang.ClassNotFoundException:
com.leapmotion.leap.Listener    at
java.net.URLClassLoader$1.run(URLClassLoader.java:202)  at
java.security.AccessController.doPrivileged(Native Method)  at
java.net.URLClassLoader.findClass(URLClassLoader.java:190)  at
java.lang.ClassLoader.loadClass(ClassLoader.java:306)   at
java.lang.ClassLoader.loadClass(ClassLoader.java:247)   ... 22 more
  • 案例2

    A延伸B

    C实例是在A

    创建的

    C延伸D

    F实例是在C

  • 创建的

结果:

好,没有错误!

以下是E延伸F

public final class SampleListener extends Listener {
    //nothing
}

1 个答案:

答案 0 :(得分:0)

此错误

  

引起:java.lang.NoClassDefFoundError:在CytoscapeLeapMotionApp上的com / leapmotion / leap / Listener。(CytoscapeLeapMotionApp.java:9)... 21更多

建议在运行CytoscapeLeapMotionApp时, com.leapmotion.leap.Listener 类型不在类路径上。

您已指出此类型位于名为 2.jar 的jar文件中,因此需要在重试之前将其添加到类路径中。