找到NoClassDefFoundError!

时间:2010-11-15 14:40:46

标签: java

import java.io.*;

public class ArrayApp{

    public static void main(String[] args){

        System.out.println("lllll");
    } // end main()
} // end class ArrayApp

我在编译后运行我的应用程序时出现此错误。

Exception in thread "main" java.lang.NoClassDefFoundError: ArrayApp
Caused by: java.lang.ClassNotFoundException: ArrayApp
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: ArrayApp.  Program will exit.

2 个答案:

答案 0 :(得分:5)

您需要确保您的类文件位于类路径中。假设您使用的是默认包(即没有包声明),您需要在运行时告诉Java在哪里找到您的类。因此,我们假设您的ArrayApp.class文件位于同一目录中。你需要像这样运行它:

java -cp . ArrayApp

选项-cp和以下.告诉Java类将在当前目录中。 -cp的较长名称为-classpath,因此您也可以使用该名称。

还要注意类路径和类名之间的空格。该路径是类文件所在的基本目录。如果将它们编译到名为“bin”的目录中,那么您将改变调用Java的方式:

java -cp bin/ ArrayApp

“ArrayApp”是完全限定的类名。

答案 1 :(得分:1)

您的类路径不正确。尝试... java -classpath . ArrayApp