日期:2014-05-20  浏览次数:20798 次

为什么有Eclipse所写的java程序不能直接打开
求大神帮帮忙,在命令行运行java程序Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\qige>d:

D:\>cd workspace\Text_3\src

D:\workspace\Text_3\src>cd test\one

D:\workspace\Text_3\src\test\one>javac class1.java

D:\workspace\Text_3\src\test\one>java class1
Exception in thread "main" java.lang.NoClassDefFoundError: class1 (wrong name: t
est/one/class1)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
        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:423)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:480)


在命令行出现这样的错误,但是在Eclipse却没有这样的错,没弄明白。

------解决方案--------------------
注意你的class1在test.one包下面,需要写全限定类名。
编译用javac -d . class1.java,运行用java test.one.class1
另外D:\workspace\Text_3\bin下面是eclipse编译好的class文件,可以在那边直接运行