0

私は Netbeans のプロジェクトに取り組んできました。次に、それを送信して、マーカーがスクリプトでコンパイルできるようにします。ただし、コマンド ラインから実行しようとすると、NoClassDefFoundError が発生します。クラスパスを現在のディレクトリに手動で設定する場合でも。

javac Main.java は正常に動作します

次に java -classpath を呼び出します。メインは次のとおりです。

java -classpath . Main
Exception in thread "main" java.lang.NoClassDefFoundError: Main (wrong name: pro
ject2/Main)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
4)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
4

2 に答える 2

5

という名前のパッケージがあるようproject2です。これが意図的なものである場合はproject2.Main、コマンド ラインでクラス名として使用する必要があり、クラスパスにはproject2ディレクトリの親が含まれます。意図的でない場合はpackage project2;、ソース ファイルの先頭にある を削除または置き換えます。

于 2010-04-25T16:32:31.247 に答える
1

ここでのキーワードは、スタック トレースの「間違った名前」です。それをググると、パッケージに問題があることがわかります。

于 2010-04-25T16:33:43.507 に答える