相信很多朋友遇到过这样一个问题(MyEclipse用久了,回去用dos就不太习惯了):
MyEclipse下创建的带包名的类在dos中能编译得到class文件,但不能运行的解决办法:
package com.csdn.test3;
public class MyCopy {
........
}
编译后MyCopy.java文件和MyCopy.class文件都在E:\javawork\Struts\Heima\src\com\csdn\test3目录下。
在dos下:
E:\javawork\Struts\Heima\src\com\csdn\test3>javac MyCopy.java
E:\javawork\Struts\Heima\src\com\csdn\test3>java MyCopy
Exception in thread "main" java.lang.NoClassDefFoundError: MyCopy (wrong name:
com/csdn/test3/MyCopy)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:1
4)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: MyCopy. Program will exit.
有两种解决办法
一:在源程序中把包去掉,即package com.csdn.test3这句不要
二:运行时候改为如下形式:
E:\javawork\Struts\Heima\src>java com/csdn/test3/MyCopy