0

したがって、コマンド プロンプトからパッケージに含まれていない Java クラスを開こうとすると、すべて正常に動作しますが、パッケージに含まれるクラスを開こうとすると、NoClassDefFoundError が返されます。そして、クラス(Java somepackage/someclass)を開こうとしたときにパッケージをリストすると、メインクラスをロードまたは検索できないと表示されます。

何か助けはありますか?

4

3 に答える 3

1

私が推測できるのは、次の 2 つのクラスがあるということです。

テスト.java:

// no package defined here

class Test{
    public static void main(String[] args){
        System.out.println("Test");
    }
}

したがって、次を使用してコンパイルして実行できます。

javac Test.java
java Test

別のクラス:

テスト.java:

package test; // package defined here

class Test{
    public static void main(String[] args){
        System.out.println("Test");
    }
}

したがって、同じことを行うとエラーが発生します。このためには、ターミナルまたはコマンドの「test」フォルダーの親ディレクトリにいて、次を使用する必要があります。

java test.Test

コンパイラに問題はありません。「test」フォルダー内から javac Test.java を使用して、通常どおりコンパイルできます。

于 2013-07-02T10:08:37.267 に答える
0

NoClassDefFoundError は、JVM が実行時にクラスを見つけられないことを意味します。これは、表示されていない (private または protected に設定されている、またはアクセス修飾子が設定されていない) ことが原因である可能性があります。

ビルドパスにない可能性もあります

于 2013-07-02T10:03:02.710 に答える