0

次のプログラムはNetbeansIDEで正常に実行されますが、コマンドプロンプトから実行しようとすると、

Exception in thread "main" java.lang.NoClassDefFoundError: Gcd (wrong name: algo
rithms/Gcd)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

package algorithms;

public class Gcd {

public static int ComputeGcd(int number1, int number2){
    if(number2 == 0){ return number1;}
    else{
         int remainder = number1 % number2;
         return ComputeGcd(number2,remainder);
    }
}


public static void main(String[] args) {

    int a = 32;
    int b = 12;
    System.out.println(ComputeGcd(a,b));

} 

}

ここに画像の説明を入力してください

4

4 に答える 4

3

次のコマンドを実行して、srcディレクトリにいる必要があります。

...\src> javac algorithms\Gcd.java
...\src> java algorithms.Gcd

(そのディレクトリからコンパイルする必要はありませんが、コンパイルすることをお勧めします。)

このjavaコマンドは、パッケージ名を含む完全修飾クラス名を取ります。

于 2012-05-01T10:35:02.887 に答える
1

2レベル上に移動します。つまり、srcを実行してから、Javaアルゴリズムを実行します。Gcd

于 2012-05-01T10:34:24.633 に答える
1

のディレクトリを作成しましたかalgorithm、コメントしてプログラムを実行してみてくださいpackage algorithm、それは動作します...保証されたら、使用できます

javac algorithms.Gcd.java; 
java algorithms.Gcd` 

@JonSkeetが述べたように、パッケージ構造について詳しくは、こちらをご覧ください。

于 2012-05-01T10:40:09.123 に答える
-2

おそらく、CLIコマンドではないNetbeansがJavaに提供しているクラスパスを確認する必要があります。

packageパッケージを使用していない場合は、問題が発生する可能性があるため 、呼び出しを削除してみてください。

于 2012-05-01T10:33:57.023 に答える