0

以下程序在 Netbeans IDE 中运行良好,但是当我尝试从命令提示符运行时,我得到

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

在 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

您可能需要查看 Netbeans 为 Java 提供的 CLI 命令没有提供的类路径。

package如果您不使用包, 请尝试删除呼叫,因为它可能会导致并发症。

于 2012-05-01T10:33:57.023 回答