以下程序在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));
}
}
答案 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
电话,因为它可能会导致并发症。