NoClasDefFoundErrorがスローされている問題があります。私はインターフェイスを使用しているので、私は困惑し、クラス定義は利用できません。クラスパスを指すいくつかの記事を読んだことがありますが、ここで問題になるとは思いません(間違っているかもしれませんが)。私はNetBeans 6.9.1 IDEを使用しています。NoClassDefFoundError
問題を再現するためのサンプルセットアップを作成しました。 4つのプロジェクト:インタフェース、オブジェクト、ロケータ、コンシューマ下に、実装があります。
実行時に消費者はSomeObject実装が欠落していることに同意しますが、それはインタフェースを受け入れているため認識してはいけません。
Exception in thread "main" java.lang.NoClassDefFoundError: objects/SomeObject
何が欠けていますか?
package interfaces;
public interface ISomeInterface { }
package objects;
import interfaces.ISomeInterface;
public class SomeObject implements ISomeInterface{ }
package locator;
import interfaces.ISomeInterface;
import objects.SomeObject;
public class Locator { public static ISomeInterface LocateImplementation() { return new SomeObject(); }}
package consumer;
import interfaces.ISomeInterface;
import locator.Locator;
public class Main { public static void main(String[] args) { ISomeInterface object = Locator.LocateImplementation(); }}
感謝を宣言する必要があります!結局のところクラスパスの問題だった。私は、「ロケータ」にクラスパスがあるにもかかわらず、消費者が「オブジェクト」を見る必要があることを認識していませんでした。 –