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 命令也可以成功执行。

Java 找不到或者无法加载主类的更多相关文章

  1. Java找不到或无法加载主类

    今天用cmd运行一下java出现了找不到或无法加载主类 的问题 javac编译可以通过   java运行不了 原因: 看一下java版本 看一下javac版本: 编译和运行环境的版本不一样报错原来是用 ...

  2. JAVA 用命令提示符执行java找不到或者无法加载主类

    使用cmd编译执行java文件时候,报错---找不到或者无法加载主类如下图 把红色部分去掉,再次编译执行如下解决问题 ,执行成功!!!!!! 2.当我们在eclipes中执行运行的时候 ggggggg ...

  3. 命令java 找不到或无法加载主类

    这个是由于用了package导致cmd下找不到class文件产生的错误,解决方案: 方法1.删除HelloWord.java源程序中的第一行package demo1:然后在cmd下正常使用javac ...

  4. Java -- 找不到或无法加载主类

    原文:http://wenku.baidu.com/link?url=5nS1GEaePn-hmtAg6xXdJvtt9Z89JQsakhqSv8fambaJY2t9nKPtf3hXFpjW-BtD9 ...

  5. JAVA“找不到或无法加载主类” 问题的解决办法

    http://blog.csdn.net/l_ong211314/article/details/8004975

  6. 控制台执行java找不到或无法加载主类

  7. java提示找不到或无法加载主类

    背景 默许jdk的配置大家都没有问题,执行java,javac无报错,但今天在尝试在本地起来kafka的时候,提示java 找不到或无法加载主类,然后日志中提示 Files 找不到或无法加载主类:C: ...

  8. 配置环境变量时,cmd下运行java -version,报错:找不到或无法加载主类 -version

    这个方面适用于报错为:java 找不到或无法加载主类,一般是找不到类的路径,问题出在CLASSPATH环境变量上,当然这是大多数.大概率的出错点 不排除根据个人情况不况,所以想起来伟大领袖毛主席的话: ...

  9. java HelloWorld 提示“错误: 找不到或无法加载主类 HelloWorld“解决方案

    在检查环境变量等前提工作准确无误后,注意要配好CLASSPATH,仍然报“错误: 找不到或无法加载主类 HelloWorld“. 本人工程目录:mygs-maven/src/main/java/hel ...

随机推荐

  1. y7000笔记本 darknet-yolo安装与测试(Ubuntu18.04+Cuda9.0+Cudnn7.1)

    环境配置看上一贴 https://www.cnblogs.com/clemente/p/10386479.html 1 安装darknet 1-1 克隆darknet repo git clone h ...

  2. 转://Oracle 单引号转义

    在ORACLE中,单引号有两个作用: 1:字符串是由单引号引用 2:转义. 单引号的使用是就近配对,即就近原则.而在单引号充当转义角色时相对不好理解 1.从第二个单引号开始被视为转义符,如果第二个单引 ...

  3. P2089 烤鸡(搜索简单题)

    题意:就是x分别是1到3的未知数,求x1+x2+x3.....+x10=n的方案数和输出每种方案.每种方案还必须按字典序输出 思路:就是简单的构建搜索树+约束条件啊,其实数据范围一点都不大,所以,我第 ...

  4. 【转】具透 | 你可能不知道,iOS 10 有一个中国「特供」的联网权限功能

    9 月底,苹果正式在北京成立了苹果中国研发中心.近几年,我们也在每年更新的 iOS 系统中不断看到,苹果对中国市场的关照.从早前的九宫格输入法,到最近的骚扰电话拦截,都照顾了国内用户的需求. 在 iO ...

  5. PHP消息队列的实现方式与详解,值得一看

    队列原理: 也是解耦的原理:业务系统和队列处理系统没有关系 一个写(业务系统),一个读(队列管理系统). 写的只管往队列里写,别的不用操心,读的能不能读完和写的也没有关系 同样,读的只管从队列里往外读 ...

  6. AJAX方式发送远程请求报错:No 'Access-Control-Allow-Origin' header

    AJAX GET方式发送远程请求,chrome开发者工具console中报错:XMLHttpRequest cannot load http://www.shikezhi.com/ajax/getDa ...

  7. 微信硬件平台(八) 3-0ESP8266向微信服务器请求设备绑定的用户

    1调试助手 请求URL: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=自己微信ID&a ...

  8. Spring MVC Content Negotiation 转载

    Spring MVC Content Negotiation 2017年11月15日 00:21:21 carl-zhao 阅读数:2983   Spring MVC有两种方式生成output的方法: ...

  9. tomcat 改端口 运维最最重要的就是有看日志的习惯

    tomcat一台机器上多实例更改端口需要改三个端口 改tomcat关闭端口 <Server port="9006" shutdown="SHUTDOWN" ...

  10. Spring Security(十三):5.2 HttpSecurity

    Thus far our WebSecurityConfig only contains information about how to authenticate our users. How do ...