jdk在CMD中抛出找不到MAIN类???但在jcreator下能够运行!!!!!!!!!!!!
路径设置都是正确的 ,请问原因
------解决方案--------------------
Exception in thread "main " java.lang.NoClassDefFoundError:
这么问你吧:
1,后面还有什么错误信息啊?这个错误后面一定还有信息的,你不说,我们怎么猜呀?
2,从字面上看,是找不到Class定义的问题。那么Class定义应该从哪里找呀?从PATH还是CLASSPATH?还是别的什么旮旯呢?你说设置是肯定对的,那为什么找不到呢?奇怪呀奇怪。
------解决方案--------------------
编译通过并不能说明运行环境设置正确,也不说明一定能运行。
比如,这个错误:
Exception in thread "main " java.lang.NoclassDefFoundErro:e:\java\TestHelloWorld
这个错误说找不到一个class,叫e:\java\TestHelloWorld。你写的class是叫这个名字吗?应该是TestHelloWorld吧?
运行java的时候,只需要class name,不需要class file所在的路径。也就是说,要运行class TestHelloWorld,就java TestHelloWorld就行了。只要运行环境设置正确,1,PATH里正确的java.exe找得到;2,CLASSPATH里TestHelloWorld.class找得到。
就上面这个例子来说,如果class name是TestHelloWorld,而且TestHelloWorld.class在e:\java里,那么只要CLASSPATH包含e:\java就好了,在什么地方运行不是那么重要,我可以在C:\运行E:\java里的class。
如果CLASSPATH里面,不包含e:\java,但是包含当前目录(就是一个点 ". "),(这个缺省是包含的,除非你自己改掉了),那么只能在e:\java下运行程序。
------解决方案--------------------
一般都是路径的问题.
步骤:
1.Hello.java类在D:\ll\kk\目录下
package ll.kk;
public class Hello{
public static void main(String[]args){
System.out.println( " hello world ");
}
}
2.进入cmd,进入d:盘根目录,javac生成class文件
D:\> javac -classpath . ll\kk\Hello.java
不要使用javac -classpath . ll.kk.Hello.java 这样会找不到Hello.java的,自己想想.
3.java运行Hello类
D:\> java -classpath . ll.kk.Hello
4.看明白了吧^-^
------解决方案--------------------
首先你得明白一点,对于java而言,无论是cmd调用javac之类的自己编译运行还是用JCreator之类的IDE,都是以java语言本身的特性为基础的,就是说再高级的IDE,和CMD也是同样的过程,只不过它用自己的方法解决了CMD必须用户自己解决的问题而已。
所以,你的问题就是classpath的问题,认真查找,肯定可以解决。
------解决方案--------------------
类名也不一定要大写,非public的类的类名也不一定要跟文件名相同.
楼上说的都很有道理,估计是路径的问题,包括类文件的路径和path环境变量,看看path里有没有其他有关JAVA的环境变量出现在你JDK的环境变量之前,比如你装个oracle,它的JDK的环境环境变量会出现在前面.