当Netbeans正确运行相同的程序时,无法从CLI运行java程序

时间:2012-05-01 10:32:04

标签: java netbeans

以下程序在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));

} 

}

enter image description here

4 个答案:

答案 0 :(得分:3)

您应该在src目录中,运行以下命令:

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

(你没有从该目录编译,但我建议你这样做。)

java命令采用完全限定的类名,包括包名。

答案 1 :(得分:1)

移动两个级别,即src,然后执行java算法.Gcd

答案 2 :(得分:1)

您是否为algorithm创建了目录,尝试通过评论package algorithm来运行该程序,它会起作用......一旦确定,您可以使用

javac algorithms.Gcd.java; 
java algorithms.Gcd` 
<@>如@JonSkeet所述,您可以了解有关包结构的更多信息here

答案 3 :(得分:-2)

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

如果您不使用套餐,请尝试删除package电话,因为它可能会导致并发症。