参考阅读(推荐)

使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析


以下为原答案,不适用于所有问题场景,敬请参考上述链接(讲解非常细致)

知识点

java your_class_file
使用java指令执行class文件时,默认通过CLASSPATH环境变量中指定的地址寻找对应.class文件

示例

HelloJavaApp类:

import java.util.*;public class HelloJavaApp{public static void main(String args[]){ //入口函数System.out.print("Hello World!");}
}

Step1: 用javac命令,编译HelloJavaApp.java文件

javac HelloJavaApp.java

得到:

Step2:用java命令,运行HelloJavaApp.class字节码文件

注意:java命令行执行.class文件时需要忽略.class后缀,即:

java HelloJavaApp

报错:

Q1:为什么报错?
A1:由前面知识点可知,java命令执行时会自动搜寻环境变量CLASSPATH路径下的需要执行的class文件。
如:使用java HelloJavaApp时,系统会自动搜寻CLASSPATH中的路径是否有HelloJavaApp.class文件。

而此时,查看自己电脑所配置的CLASSPATH环境变量,如下:

路径对应下图中两个.jar包

因为上述CLASSPATH路径只对应上述2个jar包,所以使用java命令行时找不到HelloJavaApp.class文件,出现了上述错误:找不到或无法加载主类

Q2:如何才能找到HelloJavaApp.class这个字节码文件呢?
A2:在CLASSPATH中加入:.;

再次执行:java HelloJavaApp,成功运行!

Q3:为什么执行成功了?
A3:因为java命令找到了HelloJavaApp.class文件。

Q4:怎么找到的?
A4:在CLASSPATH中加入了.;,其含义是:从当前目录搜索对应.class文件,即:
java HelloJavaApp的当前目录为:

对应:

从上述目录中,显然能找到HelloJavaApp.class文件并运行!

总结

当使用cmd来执行java文件时,若遇到找不到或无法加载主类,首先应想到出现此问题是不是与路径配置有关!然后可通过配置环境变量CLASSPATH,加入.;来解决此问题!


更新 (2020.02.02)

若上述方法无法解决问题,有可能是源代码里有误。比如:

package com.dal.ioExample; //加上包名,提示“错误: 找不到或无法加载主类 TestArgs”public class TestArgs {public static void main(String[] args) {for (int i = 0; i < args.length; i++) {System.out.println("args[" + i + "] is " + args[i]);}}
}


当去掉包名后,如下:

//package com.dal.ioExample; //去掉包名,运行成功public class TestArgs {public static void main(String[] args) {for (int i = 0; i < args.length; i++) {System.out.println("args[" + i + "] is " + args[i]);}}
}


分析:当执行此程序时,系统(JVM)先从寻找包com.dal.ioExample,若找不到包,则自然找不到所需要执行的类。当把包名去掉后,系统(JVM)从.;当前目录下寻找TestArgs字节码文件,能找到也就能执行了。

参考链接

  1. 使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析

Java:cmd命令行中 错误: 找不到或无法加载主类(从原理出发讲解!)相关推荐

  1. 求助:java applet无法运行,错误: 找不到或无法加载主类 sun.applet.AppletViewer

    import java.applet.Applet; import java.awt.Button; import java.awt.Color;   public class HelloWorld ...

  2. win10无法检测java_win10下配置JAVA环境变量(以及错误: 找不到或无法加载主类的处理方法)...

    系统:win10 pro  14393; 第一步:下载JDK文件(对应自己系统下对应版本)去oracle官网:http://www.oracle.com/technetwork/java/javase ...

  3. java applet无法运行,错误: 找不到或无法加载主类 sun.applet.AppletViewer

    真的这个问题困扰我一上午,终于被我发现怎么更改了! Sun 是一个在计算机发展史上有着重要历史地位的公司,2009 年被 Oracle 收购,这里的sun应该是该公司创建的意思. 我的电脑idea配置 ...

  4. Error 错误: 找不到或无法加载主类

    jar包问题:项目的Java Build Path中的Libraries中有个jar包的Source attachment指为了一个不可用的jar包,解决办法是:将这个不可用的jar包remove掉. ...

  5. 错误: 找不到或无法加载主类

    环境要求 -> java8 1.实际提示: 错误: 找不到或无法加载主类 Java8Test.class 2.java文件:  Java8Test.java  ,内容如下 public clas ...

  6. web项目中报错:错误: 找不到或无法加载主类

    做项目过程中,不知道碰到了什么地方,项目出现加载不了main方法的情况,老是报"错误: 找不到或无法加载主类"错误, 项目名称上一直提示错误,但是项目中代码并没有错误的地方,最后发 ...

  7. 关于'java' 不是内部或外部命令,也不是可运行的程序 或批处理文件 和 错误: 找不到或无法加载主类 helloworld的问题...

    一.前几天电脑重装了一次系统将java配置的环境变量都弄没了,自己添加了两个新的变量JAVA_HOME(自己jdk的地址)以及在path中添加%JAVA_HOME%\bin;%JAVA_HOME%\j ...

  8. java错误 找不到或无法加载主类

    java:错误: 找不到或无法加载主类 1.确定JDK版本 ​ 因为随着时间的改变,JDK本身也伴随着更改和变化,在解决这个问题前,我们要确定一下jdk的版本,比较老的版本有老的版本的解决方法,比较新 ...

  9. java问题:错误: 找不到或无法加载主类 HelloWorld

    有时候我们需要直接用jdk提供的java命令来执行class文件让软件运行起来,特别是很多初学者,但经常会发现如下提示: D:\java\eclipse-workspace\first\src\fir ...

最新文章

  1. Node.js实现服务器端生成Excel文件(xls格式、xlsx格式文件)并弹出下载文件
  2. 人工智能加“医真云”,每年让5700万人告别误诊
  3. 打造智慧城市 让市场成为主角
  4. SAP读取财务报表版本的标准函数
  5. harbor镜像清理:使用registry:2.6.2-photon garbage-collect
  6. 计算机翻译辅助工具安卓版,计算机辅助翻译软件
  7. The Everyman's Guide to How Network Packets Are Routed Across the Web
  8. 字符串拼串 能缓解我们的开发难度→!←(ε=(´ο`*)))唉,又是一个不知道该怎么写题目的随笔啊,头疼)...
  9. Socket编程实践(11) --epoll原理与封装
  10. 跪求***基地的邀请码
  11. (转)智能投顾的中国特色:强需求,大规模,低门槛与巨大提升空间
  12. 双调欧几里得旅行商问题_遗传模拟退火算法求解旅行商(TSP)问题MATLAB代码讲解...
  13. matlab匿名函数求导,MATLAB匿名函数和函数句柄
  14. linux下的文件系统,Linux系统中常见的文件系统有哪些?
  15. R数据分析:论文中的轨迹的做法,潜增长模型和增长混合模型
  16. 如何快速搭建自己的github.io博客
  17. java 插件 地图_[Java教程]插件~使用ECharts动态在地图上标识点
  18. 进cf一直连接服务器失败怎么办,Win7玩穿越火线提示连接服务器失败的原因及解决方法...
  19. 第3章 感受(一)——3.12. Hello STL 向量篇
  20. 如何利用工具低成本构建腾讯云灾备方案?

热门文章

  1. bootstrap-datepicker 开始时间-结束时间 thinkphp
  2. js学习总结----js中常用的四种输出方式
  3. 关于c3p0连接池连接mysql数据库需要注意的几点
  4. struts2(一) struts2入门
  5. FCK编辑器去掉html标签
  6. 《大型数据库技术》MySQL管理维护
  7. ZooKeeper官方文档学习笔记05-ZooKeeper的屏障(Barrier)和队列(Queue)教程
  8. 算法_深度LSTM笔记[博]
  9. 一文精通 crontab从入门到出坑
  10. IT行业里有这么多聪明人,他们之间的区别在哪里?