介绍一个Java初学者可能会遇到的问题
首先,创建一个类,如下:
文件名:Demo.java
package com.zhangyun;
public class Demo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Hello World!");
}
}
然后我找到对应在磁盘的位置,如下:
E:\MyEclipse10\JavaLearning\src\com\zhangyun>dir
2015/08/12 22:01 <DIR> .
2015/08/12 22:01 <DIR> ..
2015/08/12 21:52 206 Demo.java
1 个文件 206 字节
2 个目录 15,542,927,360 可用字节
然后我编译java文件:
E:\MyEclipse10\JavaLearning\src\com\zhangyun>javac Demo.java
E:\MyEclipse10\JavaLearning\src\com\zhangyun>dir
2015/08/12 22:04 <DIR> .
2015/08/12 22:04 <DIR> ..
2015/08/12 22:04 427 Demo.class
2015/08/12 21:52 206 Demo.java
2 个文件 633 字节
2 个目录 15,542,927,360 可用字节
编译成功后,产生Demo.class文件,我开始运行:
E:\MyEclipse10\JavaLearning\src\com\zhangyun>java Demo
Exception in thread "main" java.lang.NoClassDefFoundError: Demo (wrong name: com
/zhangyun/Demo)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
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:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
发现出错了,其实遇到上面的问题,不要着急,因为我java代码中存在包,所以正确的执行方法是:
E:\MyEclipse10\JavaLearning\src\com\zhangyun>cd ../../
E:\MyEclipse10\JavaLearning\src>javac -d . com\zhangyun\Demo.java
E:\MyEclipse10\JavaLearning\src>java com.zhangyun.Demo
Hello World!
注释:很多在Eclipse或MyEclipse中开发习惯了,当然不会遇到这个问题,但是java的初级爱好者,大多喜欢拿着记事本写着代码,dos窗口中敲着命令。。。。
版权声明:本文为博主原创文章,未经博主允许不得转载。
Exception in thread "main" java.lang.NoClassDefFoundError: Demo (wrong name: com/zhangyun/Demo)解决办法
原文:http://blog.csdn.net/jiangshouzhuang/article/details/47453055