使用cmd运行时的java.lang.NoClassDefFoundError

时间:2013-12-02 12:44:19

标签: java eclipse

我在java编程书中测试程序时遇到了一些问题。我在eclipse中编写代码并成功运行它,但是当我通过命令行编译.java文件然后使用java ConsoleEcho运行它时,我收到此错误:

Exception in thread "main" java.lang.NoClassDefFoundError: ConsoleEcho (wrong na
me: einausgabe/ConsoleEcho)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14
2)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

我的程序代码是:

package einausgabe;

import java.io.IOException;
import static java.lang.System.*;

public class ConsoleEcho {
    public static void main( String args[] ) throws IOException {
        while( true ) {
            int code = in.read();
            out.write(code);
        }
    }
}

我使用的命令是:

javac ConsoleEcho
java ConsoleEcho

我从目录..\Java\ProgrammierenMitJava2\src\einausgabe

运行它

编译时我没有收到任何错误。尝试java einausgabe.ConsoleEcho然后我收到此错误消息:

Error: Could not find or load main class einausgabe.ConsoleEcho

2 个答案:

答案 0 :(得分:1)

您需要在命令行中包含程序包名称,例如:

java einausgabe.ConsoleEcho

您似乎在命令中只有类名。

答案 1 :(得分:1)

您似乎忘记了包裹名称

使用

java einausgabe.ConsoleEcho