我正在关注Princeton website上的java教程。Java不会在终端java.lang.NoClassDefFoundError中运行程序
我跑debian sqeeze 64bit
,我已经安装了Sun的Java版本6.
我可以编译,没有任何问题,运行基本hello world
程序,使用终端和Eclipse IDE。
的问题是:
,当我尝试编译并运行程序,这需要例如参数输入:
public class RandomSeq {
public static void main(String[] args) {
// command-line argument
int N = Integer.parseInt(args[0]);
// generate and print N numbers between 0 and 1
for (int i = 0; i < N; i++) {
System.out.println(Math.random());
}
}
}
我可以在Eclipse中运行这个把一个整数参数,但它在终端上不起作用。
我得到这个错误:
[email protected]:~/Documents/workspace/IOput/src/randomSeq$ java RandomSeq 21 Exception in thread "main" java.lang.NoClassDefFoundError: RandomSeq (wrong name: randomSeq/RandomSeq) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could not find the main class: RandomSeq. Program will exit.
我试图更新/etc/profile
包括在PATH变量java-6-sun
。
我不确定,从这里尝试。
您的类路径不正确。 –
你的主要课程是在默认包中吗?你是否把它包含在另一个包中?如果是这样,请不要将其保留在默认包中。 – Adrian
你的源文件中有包定义吗?如果是,转到'src /'文件夹并在那里执行程序(使用'randomseq.Randomseq'作为类) – ZeissS