我想做 Cytoscape 简单的应用程序(它就像一个插件程序)。
所以我应该制作一个.jar
文件,并将其安装在 Cytoscape 程序中。
我的问题如下:
我给你看2个案例。
有 6 个类(A、B、C、D、E、F)和 2 个 .jar 文件(代表其他 API)
A(CytoscapeLeapMotionApp)是主类(实际上它不包括main方法,但它是安装App时运行的第一个类)。
C,E 是我制作的课程。
B、D 在 1.jar 中。
F(Listener) 在 2.jar(leap) 中。
情况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
}