问题发现:一直都在Eclipse中运行程序,没什么问题。今天有个小测试程序在命令行执行,javac 后生成字节码文件没有问题,但是java test时报出Exception in thread "main" 错误。(注意不是java ,java 肯定不正确,也报出次错误)
解决过程:
1,命令行javac,java,java -version提示内容正常 ,说明环境变量配置没问题(网上很多文章说环境变量配置有问题,容易被误导)。
2,查看现在用的JDK版本和编译文件的JDK版本是否一致。点开始->运行-->cmd,然后输入 javac -version看编译器的版本,输入java -version看执行时的版本,发现版本一致,排除这个问题(版本不一致也会报出找不到类的错误)。
最终解决:
还是环境变量配置问题,重新查看classpath和path的路径设置,上述第一条说明配置没有错误,但是没有起作用。
原先的设置是:
“在classpath路径后面加入 :C:\Program Files\Java\jdk1.6.0_10\jre\lib\;.;
在path路径后面加入:C:\Program Files\Java\jdk1.6.0_10\bin”
应该是这个样子:classpath中把“.”放在最前面,即:.;C:\Program Files\Java\jdk1.6.0_10\jre\lib\;
在path路径的最前面加入:C:\Program Files\Java\jdk1.6.0_10\bin(我恰恰把它放在了最后。。晕。)
原因:当你输入某个命令时,系统会在classpath,path中从前往后进行查找,一旦找到就不再继续往下查找。所以你在后面设置的路径,一旦在前面找到了根本就不会跑的你预想的路径下。