关于Java的错误:Exception in thread "main" java.lang.NoClassDe...
来源:互联网 发布:greendao查询所有数据 编辑:程序博客网 时间:2024/04/30 14:54
对于我们这些初学者来说,虽然环境配置成功。但是我们对这些变量到底什么意思并不清楚。
三个环境变量:JAVA_HOME、PATH 和 CLASSPATH。
JAVA_HOME:该环境变量的值就是 Java 所在的目录,一些 Java 版的软件和一些 Java 的工具需要用到该变量,设置 PATH 和 CLASSPATH 的时候,也可以使用该变量以方便设置。
PATH:指定一个路径列表,用于搜索可执行文件的。执行一个可执行文件时,如果该文件不能在当前路径下找到,则依次寻找 PATH 中的每一个路径,直至找到。或者找完 PATH 中的路径也不能找到,则报错。Java 的编译命令 (javac),执行命令 (java) 和一些工具命令 (javadoc, jdb 等) 都在其安装路径下的 bin 目录中。因此我们应该将该路径添加到 PATH 变量中。
CLASSPATH:也指定一个路径列表,是用于搜索 Java 编译或者运行时需要用到的类。在 CLASSPATH 列表中除了可以包含路径外,还可以包含 .jar 文件。Java 查找类时会把这个 .jar 文件当作一个目录来进行查找。通常,我们需要把 JDK 安装路径下的 jre/lib/rt.jar (Linux: jre/lib/rt.jar) 包含在 CLASSPATH 中。
PATH 和 CLASSPATH 都指定路径列表,列表中的各项 (即各个路径) 之间使用分隔符分隔。在 Windows 下,分隔符是分号 (;),而在 Linux 下,分隔符是冒号 (:)。
关于Java的错误:Exception in thread "main" java.lang.NoClassDe... 这个错误时一般是因为CLASSPATH配置有问题,不是编译的环境的问题。
解决方法:
(1)、你的文件名对吗?
JAVA要求你的文件和你的类名严格对应的。比如 public class Hello{ .....
那么文件名一定只能是Hello.java,看仔细了
(2)、你的程序中有main方法吗?参数什么的对吗?
main方法的声明应该是这样子的:
public static void main(String[] args)
(3)、记住,javac后面跟的参数是文件名,但java 后面跟的是类名!
这是开始学JAVA时,常犯的错,java Hello.class,然后就报错。后来才弄明白,应该是java Hello。
(4)、环境变量检查
点开始->运行-->cmd,输入JAVA或JAVAC 如果你看到关于JAVA的很多信息 就OK了!其实都提示到Exception in thread "main" java.lang.NoClassDefFoundError:D:/java/hello 了 可以肯定的说,不是编译环境的问题。
(5)、查看你现在用的JDK版本和你编译文件的JDK是不是同一个版本的
点开始->运行-->cmd,然后输入 javac -version看编译器的版本,输入java -version看执行时的版本,再看看你刚才执行文件版 本,看一不一样!
(6)、你在环境变量CLASSPATH上加上路径D:/java,你照样可以直接运行命令java Hello,或者临时运行时候查找路径可以这样写java -classpath D:/java Hello (其实前面应该是没有问题的,我就是通过这条做成功的)。
补充:
(7)环境变量CLASSPATH位置问题:dt.jar和tools.jar。应该为CLASSPATH=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar
最后一个是我自己遇到的,原因是为什么我就不知道了。请高手指教!
- 关于Java的错误:Exception in thread "main" java.lang.NoClassDe...
- "Exception in thread "main" java.lang.NoClassDefFoundError"错误的原因
- Exception in thread "main" java.lang.LinkageError错误的解决
- 关于错误:Exception in thread "main" java.lang.NoClassDefFoundError 的解决方法
- 关于lucene的demo运行时出现Exception in thread "main" java.lang.NoClassDefFoundError错误
- Java运行错误:Exception in thread "main" java.lang.NoClassDefFoundError
- Exception in thread "main" java.lang.NoClassDefFoundError: 错误
- Exception in thread "main" java.lang.UnsatisfiedLinkError 错误及解决方法
- Exception in thread "main" java.lang.NoClassDefFoundError:错误 如何解决?
- Exception in thread "main" java.lang.NoClassDefFoundError错误解决
- Exception in thread "main" java.lang.NoClassDefFoundError错误解决
- 错误Exception in thread "main" java.lang.OutOfMemoryError: PermGen space
- Exception in thread "main" java.lang.NoClassDefFoundError错误解决
- Exception in thread "main" java.lang.UnsupportedClassVersionError错误
- Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:5错误
- Exception in thread "main" java.lang.NoClassDefFoundError
- Exception in thread "main" java.lang.NoClassDefFoundError
- Exception in thread "main" java.lang.NoClassDefFoundError
- Java环境配置(详细+图)
- Android学习笔记(六):xml和widget
- MySQL 日期查询
- 修复或更改文件关联图标
- Lucene.Net-内存溢出问题解决
- 关于Java的错误:Exception in thread "main" java.lang.NoClassDe...
- device_create分析
- IIS发布网站后,连接Oracle数据库出错解决办法(9i+10g)
- 信息检索常用的性能评价指标
- 表变量与临时表的优缺点
- MLDN JAVA-web培训视频教程
- 进来理一下关系,绕死你!
- SNS
- Linux 下 apache + resin 安装与整合