Exception in thread "main" java.lang.NoClassDefFoundError
2008-10-14 12:58
369 查看
不管在哪个目录下都不行,不管执行那个文件都提示Exception in thread "main" java.lang.NoClassDefFoundError:classname(执行的那个文件名) 错误。
有以下两种错误:
第一种:
F:/classes>java HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError:HelloWorld
出现此问题是因为classpath设置错误。
我设置如下:
java_home=C:/Program Files/Java/jdk 1.5.0_05
classpath=.;%java_home%/lib/dt.jar;%java_home%/lib/tools.jar;(注意最前边是一点再一分号,这是表示当前路径,即环境变量classpath必须包含当前路径才行,如果不包括,需要用set classpath = %classpath%;e:/myjava临时设置)
就再设置下classpath的路径,根据文件所在地方。
set classpath=%classpath%;F:/classes;
这样设一下就可以解决问题了。
第二种:
详细错误如下:
D:/Inprise/AppServer/classes/com/enterpriseoffice>java timeBean
Exception in thread "main" java.lang.NoClassDefFoundError: timeBean (wrong name:
com/enterpriseoffice/timeBean)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:11
1)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
at java.net.URLClassLoader.access$100(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:297)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
解决方法:
到D:/Inprise/AppServer/classes目录下执行java -cp . com.enterpriseoffice.timeBean试试
说明:java -cp . 表示将当前路径指定为java运行的类路径,运行类的时候会在你指定的类路径中去查找这个类。
其他答案:
1、 你的文件名对吗?
JAVA要求你的文件和你的类名严格对应的。
比如 public class HelloWorld{ .....
那么文件名一定只能是HelloWorld.java,看仔细了!
2、你的程序中有main方法吗?参数什么的对吗?
main方法的声明应该是这样子的:
public static void main(String[] args)
事实上如果你用开发工具来做的话,是不会错的。如果你用UltraEdit之类的来写程序的话,就一个字不要改的照抄吧!
3、记住,javac后面跟的参数是文件名,但java 后面跟的是类名!
这是我开始学JAVA是犯的错,java HelloWorld.class,然后就报错。后来才弄明白,应该是java HelloWorld。
4、设置了classpath了吗?
不仅是在安装JDK时要设置的内容,一般来说最好还要自己设置一个目录来存放自己的类文件的。比如d:/class目录。
设置classpath=%classpath%;d:/class
那么,现在将HelloWorld.class文件COPY到d:/class目录下,再java HelloWorld应该就OK了。
5、结合第3点和第4点
如果你的类是属于某一个包的,比如这样一个类sony.test.HelloWorld,那么按照我在第4点中说的目录来说,就应该将HelloWorld.class文件存放到d:/class/sony/test/目录下。
执行的时候应该参考第3点中说的,按类名执行:java sony.test.HelloWorld。
不管在哪个目录下都不行,不管执行那个文件都提示Exception in thread "main" java.lang.NoClassDefFoundError:classname(执行的那个文件名) 错误。
有以下两种错误:
第一种:
F:/classes>java HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError:HelloWorld
出现此问题是因为classpath设置错误。
我设置如下:
java_home=C:/Program Files/Java/jdk 1.5.0_05
classpath=.;%java_home%/lib/dt.jar;%java_home%/lib/tools.jar;(注意最前边是一点再一分号,这是表示当前路径,即环境变量classpath必须包含当前路径才行,如果不包括,需要用set classpath = %classpath%;e:/myjava临时设置)
就再设置下classpath的路径,根据文件所在地方。
set classpath=%classpath%;F:/classes;
这样设一下就可以解决问题了。
第二种:
详细错误如下:
D:/Inprise/AppServer/classes/com/enterpriseoffice>java timeBean
Exception in thread "main" java.lang.NoClassDefFoundError: timeBean (wrong name:
com/enterpriseoffice/timeBean)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:11
1)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
at java.net.URLClassLoader.access$100(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:297)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
解决方法:
到D:/Inprise/AppServer/classes目录下执行java -cp . com.enterpriseoffice.timeBean试试
说明:java -cp . 表示将当前路径指定为java运行的类路径,运行类的时候会在你指定的类路径中去查找这个类。
其他答案:
1、 你的文件名对吗?
JAVA要求你的文件和你的类名严格对应的。
比如 public class HelloWorld{ .....
那么文件名一定只能是HelloWorld.java,看仔细了!
2、你的程序中有main方法吗?参数什么的对吗?
main方法的声明应该是这样子的:
public static void main(String[] args)
事实上如果你用开发工具来做的话,是不会错的。如果你用UltraEdit之类的来写程序的话,就一个字不要改的照抄吧!
3、记住,javac后面跟的参数是文件名,但java 后面跟的是类名!
这是我开始学JAVA是犯的错,java HelloWorld.class,然后就报错。后来才弄明白,应该是java HelloWorld。
4、设置了classpath了吗?
不仅是在安装JDK时要设置的内容,一般来说最好还要自己设置一个目录来存放自己的类文件的。比如d:/class目录。
设置classpath=%classpath%;d:/class
那么,现在将HelloWorld.class文件COPY到d:/class目录下,再java HelloWorld应该就OK了。
5、结合第3点和第4点
如果你的类是属于某一个包的,比如这样一个类sony.test.HelloWorld,那么按照我在第4点中说的目录来说,就应该将HelloWorld.class文件存放到d:/class/sony/test/目录下。
执行的时候应该参考第3点中说的,按类名执行:java sony.test.HelloWorld。
有以下两种错误:
第一种:
F:/classes>java HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError:HelloWorld
出现此问题是因为classpath设置错误。
我设置如下:
java_home=C:/Program Files/Java/jdk 1.5.0_05
classpath=.;%java_home%/lib/dt.jar;%java_home%/lib/tools.jar;(注意最前边是一点再一分号,这是表示当前路径,即环境变量classpath必须包含当前路径才行,如果不包括,需要用set classpath = %classpath%;e:/myjava临时设置)
就再设置下classpath的路径,根据文件所在地方。
set classpath=%classpath%;F:/classes;
这样设一下就可以解决问题了。
第二种:
详细错误如下:
D:/Inprise/AppServer/classes/com/enterpriseoffice>java timeBean
Exception in thread "main" java.lang.NoClassDefFoundError: timeBean (wrong name:
com/enterpriseoffice/timeBean)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:11
1)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
at java.net.URLClassLoader.access$100(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:297)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
解决方法:
到D:/Inprise/AppServer/classes目录下执行java -cp . com.enterpriseoffice.timeBean试试
说明:java -cp . 表示将当前路径指定为java运行的类路径,运行类的时候会在你指定的类路径中去查找这个类。
其他答案:
1、 你的文件名对吗?
JAVA要求你的文件和你的类名严格对应的。
比如 public class HelloWorld{ .....
那么文件名一定只能是HelloWorld.java,看仔细了!
2、你的程序中有main方法吗?参数什么的对吗?
main方法的声明应该是这样子的:
public static void main(String[] args)
事实上如果你用开发工具来做的话,是不会错的。如果你用UltraEdit之类的来写程序的话,就一个字不要改的照抄吧!
3、记住,javac后面跟的参数是文件名,但java 后面跟的是类名!
这是我开始学JAVA是犯的错,java HelloWorld.class,然后就报错。后来才弄明白,应该是java HelloWorld。
4、设置了classpath了吗?
不仅是在安装JDK时要设置的内容,一般来说最好还要自己设置一个目录来存放自己的类文件的。比如d:/class目录。
设置classpath=%classpath%;d:/class
那么,现在将HelloWorld.class文件COPY到d:/class目录下,再java HelloWorld应该就OK了。
5、结合第3点和第4点
如果你的类是属于某一个包的,比如这样一个类sony.test.HelloWorld,那么按照我在第4点中说的目录来说,就应该将HelloWorld.class文件存放到d:/class/sony/test/目录下。
执行的时候应该参考第3点中说的,按类名执行:java sony.test.HelloWorld。
不管在哪个目录下都不行,不管执行那个文件都提示Exception in thread "main" java.lang.NoClassDefFoundError:classname(执行的那个文件名) 错误。
有以下两种错误:
第一种:
F:/classes>java HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError:HelloWorld
出现此问题是因为classpath设置错误。
我设置如下:
java_home=C:/Program Files/Java/jdk 1.5.0_05
classpath=.;%java_home%/lib/dt.jar;%java_home%/lib/tools.jar;(注意最前边是一点再一分号,这是表示当前路径,即环境变量classpath必须包含当前路径才行,如果不包括,需要用set classpath = %classpath%;e:/myjava临时设置)
就再设置下classpath的路径,根据文件所在地方。
set classpath=%classpath%;F:/classes;
这样设一下就可以解决问题了。
第二种:
详细错误如下:
D:/Inprise/AppServer/classes/com/enterpriseoffice>java timeBean
Exception in thread "main" java.lang.NoClassDefFoundError: timeBean (wrong name:
com/enterpriseoffice/timeBean)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:11
1)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
at java.net.URLClassLoader.access$100(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:297)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
解决方法:
到D:/Inprise/AppServer/classes目录下执行java -cp . com.enterpriseoffice.timeBean试试
说明:java -cp . 表示将当前路径指定为java运行的类路径,运行类的时候会在你指定的类路径中去查找这个类。
其他答案:
1、 你的文件名对吗?
JAVA要求你的文件和你的类名严格对应的。
比如 public class HelloWorld{ .....
那么文件名一定只能是HelloWorld.java,看仔细了!
2、你的程序中有main方法吗?参数什么的对吗?
main方法的声明应该是这样子的:
public static void main(String[] args)
事实上如果你用开发工具来做的话,是不会错的。如果你用UltraEdit之类的来写程序的话,就一个字不要改的照抄吧!
3、记住,javac后面跟的参数是文件名,但java 后面跟的是类名!
这是我开始学JAVA是犯的错,java HelloWorld.class,然后就报错。后来才弄明白,应该是java HelloWorld。
4、设置了classpath了吗?
不仅是在安装JDK时要设置的内容,一般来说最好还要自己设置一个目录来存放自己的类文件的。比如d:/class目录。
设置classpath=%classpath%;d:/class
那么,现在将HelloWorld.class文件COPY到d:/class目录下,再java HelloWorld应该就OK了。
5、结合第3点和第4点
如果你的类是属于某一个包的,比如这样一个类sony.test.HelloWorld,那么按照我在第4点中说的目录来说,就应该将HelloWorld.class文件存放到d:/class/sony/test/目录下。
执行的时候应该参考第3点中说的,按类名执行:java sony.test.HelloWorld。
相关文章推荐
- Exception in thread "main" java.lang.ArithmeticException: / by zero
- Exception in thread "main" java.lang.NoSuchMethodError: org.apache.poi.poifs.filesystem.POIFSFileSys
- Exception in thread "main" java.lang.NoClassDefFoundError: javax/transaction/SystemException
- Exception in thread "main" java.lang.NoClassDefFoundError错误信息
- Linux(centOS):Exception in thread "main" java.lang.UnsupportedClassVersionError***
- Exception in thread "main" java.lang.UnsatisfiedLinkError: no hello in java.library.path
- Exception in thread "main" java.lang.RuntimeException: Stub! java.lang.NoClassDefFoundError
- Exception in thread "main" java.lang.NoSuchMethodError: org.slf4j.MDC.getCopyOfContextMap()Ljava/uti
- IDEA 14.1.3-import之前的scala项目报错:Exception in thread "main" java.lang.ClassNotFoundException: kmust.hj
- Exception in thread "main" java.lang.UnsupportedClassVersionError:
- 在myeclilpse7.0中启动tomcat7.0.6报错:Exception in thread "main" java.lang.NoClassDefFoundError:
- Exception in thread "main" java.lang.NoClassDefFoundError: javax/transaction/Synchronization
- Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
- Exception in thread "main" java.lang.UnsatisfiedLinkError: ca.beq.util.win32.registry.RegistryKey.te
- Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
- Exception in thread "main" java.lang.NoClassDefFoundError: org/odmg/DSet
- Eclipse运行程序提示:Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
- 输入JAVAC出现Exceptioninthread"main"java.lang.NoClassDefFoundError:com/sun/t
- Exception in thread "main" java.lang.ExceptionInInitializerError
- Jbpm发邮件抛出Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream