Cytoscapeのシンプルなアプリ(プラグインのようなもの)を作りたいです。
なので、.jar
ファイルを作ってCytoscape Programにインストールする必要があります。
私の問題は次のとおりです。
2ケース紹介します。
6 つのクラス (A、B、C、D、E、F) と 2 つの .jar ファイル (他の API を表す) があります。
(CytoscapeLeapMotionApp) がメイン クラスです (実際にはメイン メソッドは含まれていませんが、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
}