package com.w1520.JavaDemo;public class JavaDemo{
        public static void main(String []args){
        System.out.println("Hello World!");
        }
}
~   
编译没有错误,运行的时候报错了:
Exception in thread "main" java.lang.NoClassDefFoundError: JavaDemo (wrong name: com/w1520/JavaDemo/JavaDemo)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
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:482)
类文件是用eclipse创建的(也用文本创建了一个),去掉package声明,在终端就可以运行了,而添加package之后就报错了。

解决方案 »

  1.   


    echo $CLASSPATH
    /usr/java/jdk1.7.0_13/lib/tools.jar:/usr/java/jdk1.7.0_13/lib/dt.jar:.echo $PATH
    /usr/java/jdk1.7.0_13/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:.:/home/puruidong/.local/bin:/home/puruidong/bin系统配置.
      

  2.   


    那在myeclipse里面怎么也提示这个呢?[我是用的系统的jdk1.7,不是myeclipse自带的jdk]
      

  3.   

    你编译和运行时在终端进行的?
    如果是的话,运行的时候是否带上了包名?以及编译带包名的文件时是否加了参数 -d . ?我这里在eclipse下运行正常!LZ可以试试C:\>javac -d . JavaDemo.javaC:\>java com.w1520.JavaDemo.JavaDemo这样应该就没问题了。
      

  4.   

    我刚才也试过了,这样可以,。现在的问题是,怎么在myeclipse里面运行我添加了jdk,只是不知道是不是Jdk添加错了《求解
      

  5.   

    把不带包名编译的class文件删除试试!
      

  6.   


    感觉应该是给myeclipse添加jdk的时候出错了,求添加方法