1 测试Test 类的时候突然遇到一个很奇怪的问题,网上搜了很多资料才找到解决办法,大多数情况是因为类加了包名编译,执行的时候没有到包下去执行。与我遇到的情况不一样。

  问题:写了一个测试类Test,在cmd下javac Test .java 能通过编译,并且生成了Test .class 文件,但是在执行时却报错:

  java Test

 c:\>java Test
错误: 找不到或无法加载主类 Test

可以肯定环境变量没有配错,因为直接执行java 与javac 命令都没有问题。很多朋友都遇到过这个问题,原因是类加了包名导致 .Java文件与 .class文件不在同一路径引起的,而我的这个测试类没有加任何包名。

解决方案:

  ① 可以通过 java -cp %classpath; Test  命令来执行,结果正确:

 c:\>java -cp %classpath; Test
Hello Servlet

② 使用echo %classpath 或者 set classpath,查看classpath环境变量,发现只显示当前用户的CLASSPATH值,系统里的CLASSPATH变量没有JDK lib 的绝对路径: .;D:\Program Files\Java\jdk1.7.0_80\lib; 。仔细回想,以前刚开始安装完JDK时,并没有配置过CLASSPATH,当时编译通过之后,可以在当前文件夹下执行对应的 .class文件的。

为什么现在又报错了呢,仔细检查了一下发现系统变量里配置了CLASSPATH,但是里面没有JDK的lib路径, .;D:\Program Files\Java\jdk1.7.0_80\lib; ,当初为了能够在系统的任何位置访问Tomcat下的servlet-api.jar 包,给系统变量里配置了CLASSPATH,到这里明白了为什么会出现上面的问题。

安装完JDK之后,在系统变量里要吗就不配置CLASSPATH(即系统变量里完全没有这个变量)如果添加了CLASSPATH 变量就一定要给它配置上JDK的lib绝对路径.

经过验证,从系统变量里删除CLASSPATH,java Test 命令可以成功执行; 如果添加CLASSPATH 就要在最前面添加上JDK的lib绝对路径:.;D:\Program Files\Java\jdk1.7.0_80\lib;  java Test 命令也可以成功执行。

最新文章

  1. Android中AlarmManager使用示例(持续更新,已经更改)
  2. C++基础知识(5)---类和对象
  3. UI控件(UIButton)
  4. SQL的常用语句
  5. ios滤镜
  6. iOS 格式化输出符号与类型转换
  7. Linux(Centos)之安装tomcat并且部署Java Web项目(转)
  8. Linux下多核环境Erlang的SMP測试
  9. Nyoj 吝啬的国度(图论&&双DFS)
  10. 05 Linux字符驱动---静态注册
  11. eclipse 下使用git clone
  12. step into,step over,step out.
  13. 利用Audacity软件分析ctf音频隐写
  14. WordPress版微信小程序2.1.5版发布
  15. Maven的继承与聚合——多模块开发
  16. NVIDIA GeForce GTX 960 设备是不可移动的,无法弹出
  17. SQL SERVER回滚恢复误操作的数据
  18. mysql 如何解决字段不区分大小写的问题
  19. XuLA/XuLA2
  20. 面试题5:JS实现从尾到头打印单链表

热门文章

  1. WPFの无边框窗体以及控件的移动
  2. SQLAlchemy 嵌套事务的解决方案
  3. hystrix
  4. Linux系统在信息社会的发展
  5. Python *args 和 **kwargs用法
  6. Python中的单例模式——装饰器实现剖析
  7. 【转】PHP获取重定向URL的几种方法
  8. java 生成txt文件
  9. 自定义的库加载不进来,因为库中import的PIL和pillow文件没有pip install
  10. Vue2.x源码学习笔记-Vue静态方法和静态属性整理