【发布时间】:2014-07-21 08:17:55
【问题描述】:
我想做 Cytoscape 简单的应用程序(就像一个插件程序)。
所以我应该制作一个.jar 文件,并将其安装在 Cytoscape 程序中。
我的问题如下:
我给你看两个案例。
有 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) 中。
-
案例一
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
}
【问题讨论】:
-
尝试为监听器提供带有命名空间的完整类名
-
你是如何运行应用程序的?在 IDE 中还是通过命令行?
-
@ray 对不起,因为我是初学者,我不知道命名空间是什么意思。 :(
-
@JamesB 我制作了一个 .jar 文件,其中包括所有类。并启动主程序(Cytoscape),安装 .jar 文件。
-
如何运行jar文件?
标签: java noclassdeffounderror classnotfoundexception leap-motion cytoscape