jdk在CMD中抛出找不到MAIN类??? jdk在CMD中抛出找不到MAIN类???但在jcreator下能够运行!!!!!!!!!!!!路径设置都是正确的 ,请问原因 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看你这问题问的……至少你得说说你的source和binary文件在哪儿吧?然后得说说你的所谓的正确的路径设置吧?还得记得说说你怎么运行程序的吧? classpath=.;是不是路径没有配好IDE可以帮你配好 路径设置都是对的 ,相信就不要说了。用其他的IDE之后就没注意,之间在CMD上编译运行就显示 Exception in thread "main" java.lang.NoClassDefFoundError: 在jcreator 和eclipse里都能运行 那你在Dos窗口运行是输入什么命令? 在CMD里运行,是需要事先设置好路径的而像jcreator这类工具,可能会自动找到JVM,JDK路径,相当于临时改了系统路径,所以可以运行,但工具一关闭,就没了 路径设置是绝对正确的,开始没怎么注意 前些时用了LOMBOL今天我同学用CMD一试 ,竟然有这问题 个人感觉会不会是服务器对其的影响等待 高手 哦 不好意思 看错了 你是在cmd里运行出错 那就不知道了 Exception in thread "main" java.lang.NoClassDefFoundError:这么问你吧:1,后面还有什么错误信息啊?这个错误后面一定还有信息的,你不说,我们怎么猜呀?2,从字面上看,是找不到Class定义的问题。那么Class定义应该从哪里找呀?从PATH还是CLASSPATH?还是别的什么旮旯呢?你说设置是肯定对的,那为什么找不到呢?奇怪呀奇怪。 3,你怎么运行你的程序的呀?java MainClass.classjava MainClass.javajava mainClassjava MainCass... Exception in thread "main" java.lang.NoClassDefFoundError: Test (测试的那个类名) 路径 环境 配置都是正确的 就是在CMD里的可以编译通过 运行结果如上 我也刚碰见这个问题,环境变量都设置正确,可以运行换台机器就出问题了(换的机器环境变量也是正确的)之后无奈中想测试下,写了个只有一行的class,可以运行,之后原程序也可以运行了,真不知道是怎么回事 高手啊 我的也是这样的问题啊 !!! 也是编译通过 可是运行JAVA 的时候就出现这个问题了Exception in thread "main" java.lang.NoclassDefFoundErro:e:\java\TestHelloWorld 编译通过并不能说明运行环境设置正确,也不说明一定能运行。比如,这个错误: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下运行程序。 真的很郁闷 所有的IDE都能够运行 classpath有问题,没有配置好,我以前也碰到过,看看前边是不是少了",;" 一般都是路径的问题.步骤: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.Hello4.看明白了吧^-^ 别忘了有一个点 -classpath 跟一个 .D:\>javac -classpath . ll\kk\Hello.javaD:\>java -classpath . ll.kk.Hello 首先你得明白一点,对于java而言,无论是cmd调用javac之类的自己编译运行还是用JCreator之类的IDE,都是以java语言本身的特性为基础的,就是说再高级的IDE,和CMD也是同样的过程,只不过它用自己的方法解决了CMD必须用户自己解决的问题而已。所以,你的问题就是classpath的问题,认真查找,肯定可以解决。 类名也不一定要大写,非public的类的类名也不一定要跟文件名相同.楼上说的都很有道理,估计是路径的问题,包括类文件的路径和path环境变量,看看path里有没有其他有关JAVA的环境变量出现在你JDK的环境变量之前,比如你装个oracle,它的JDK的环境环境变量会出现在前面. 问题解决了 原因是我系统前几天重装了 刚在注册表看了下 它的环境变量classpath没有写入其中 我直接用的系统重装前安装的JDK 重装了下JDK搞定了 谢谢大家呀 jdk是不用重装的.!^-^在系统环境变量里设置就行.JAVA_HOME =jdk安装目录CLASSPATH =%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;注册表那个只是JRE用的. 上面说的东西都配置好了的话,你只需点击Build>compile file然后再点Build>execute file即可.之所以提示找不到类,是因为没有编译就点击了运行,那时个java文件还没有编译成.class字节码文件,当然提示找不到类了啊! 我知道了,我刚才也是犯了一个和你一样的错。javac 后成功。但是下面解释的时候写成java helloworld.java 了应该写成java helloworld也有别的可能,小弟也是刚学 请问如何实现以下图形 Java中如何将List中剩下的人名逐行写回原来的TXT文件 关于java的反射机制的问题 java 如何 实现 动态 读取配置文件,请多指教,谢谢!! JBuilder8将Java源程序转换成 .EXE需要的运行环境 求助:如何把图片写到jsp页面上 Java图形编程如何设置插入图片的大小 一个大厅n个房间,每个房间里的逻辑模型相同,但是有定时事件,如何实现这种模型? 急急急急!!!一个很简单的关于文件的问题 关于JTable的单元格闪动的问题。 你们的j2me编程的文本编辑器一般是选什么 Java初级问题..关于switch case 的.请进...
至少你得说说你的source和binary文件在哪儿吧?
然后得说说你的所谓的正确的路径设置吧?
还得记得说说你怎么运行程序的吧?
是不是路径没有配好
IDE可以帮你配好
在jcreator 和eclipse里都能运行
今天我同学用CMD一试 ,竟然有这问题
个人感觉会不会是服务器对其的影响
等待 高手
那就不知道了
1,后面还有什么错误信息啊?这个错误后面一定还有信息的,你不说,我们怎么猜呀?
2,从字面上看,是找不到Class定义的问题。那么Class定义应该从哪里找呀?从PATH还是CLASSPATH?还是别的什么旮旯呢?你说设置是肯定对的,那为什么找不到呢?奇怪呀奇怪。
java MainClass.class
java MainClass.java
java mainClass
java MainCass
...
路径 环境 配置都是正确的
就是在CMD里的可以编译通过 运行结果如上
换台机器就出问题了(换的机器环境变量也是正确的)之后无奈中想测试下,写了个只有一行的class,可以运行,之后原程序也可以运行了,
真不知道是怎么回事
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.Hello4.看明白了吧^-^
D:\>javac -classpath . ll\kk\Hello.java
D:\>java -classpath . ll.kk.Hello
所以,你的问题就是classpath的问题,认真查找,肯定可以解决。
楼上说的都很有道理,估计是路径的问题,包括类文件的路径和path环境变量,看看path里有没有其他有关JAVA的环境变量出现在你JDK的环境变量之前,比如你装个oracle,它的JDK的环境环境变量会出现在前面.
重装了下JDK
搞定了
谢谢大家呀
!^-^
在系统环境变量里设置就行.
JAVA_HOME =jdk安装目录
CLASSPATH =%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;
注册表那个只是JRE用的.
应该写成java helloworld
也有别的可能,小弟也是刚学