Java:cmd命令行中 错误: 找不到或无法加载主类(从原理出发讲解!)
参考阅读(推荐)
使用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
字节码文件,能找到也就能执行了。
参考链接
- 使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析
Java:cmd命令行中 错误: 找不到或无法加载主类(从原理出发讲解!)相关推荐
- 求助:java applet无法运行,错误: 找不到或无法加载主类 sun.applet.AppletViewer
import java.applet.Applet; import java.awt.Button; import java.awt.Color; public class HelloWorld ...
- win10无法检测java_win10下配置JAVA环境变量(以及错误: 找不到或无法加载主类的处理方法)...
系统:win10 pro 14393; 第一步:下载JDK文件(对应自己系统下对应版本)去oracle官网:http://www.oracle.com/technetwork/java/javase ...
- java applet无法运行,错误: 找不到或无法加载主类 sun.applet.AppletViewer
真的这个问题困扰我一上午,终于被我发现怎么更改了! Sun 是一个在计算机发展史上有着重要历史地位的公司,2009 年被 Oracle 收购,这里的sun应该是该公司创建的意思. 我的电脑idea配置 ...
- Error 错误: 找不到或无法加载主类
jar包问题:项目的Java Build Path中的Libraries中有个jar包的Source attachment指为了一个不可用的jar包,解决办法是:将这个不可用的jar包remove掉. ...
- 错误: 找不到或无法加载主类
环境要求 -> java8 1.实际提示: 错误: 找不到或无法加载主类 Java8Test.class 2.java文件: Java8Test.java ,内容如下 public clas ...
- web项目中报错:错误: 找不到或无法加载主类
做项目过程中,不知道碰到了什么地方,项目出现加载不了main方法的情况,老是报"错误: 找不到或无法加载主类"错误, 项目名称上一直提示错误,但是项目中代码并没有错误的地方,最后发 ...
- 关于'java' 不是内部或外部命令,也不是可运行的程序 或批处理文件 和 错误: 找不到或无法加载主类 helloworld的问题...
一.前几天电脑重装了一次系统将java配置的环境变量都弄没了,自己添加了两个新的变量JAVA_HOME(自己jdk的地址)以及在path中添加%JAVA_HOME%\bin;%JAVA_HOME%\j ...
- java错误 找不到或无法加载主类
java:错误: 找不到或无法加载主类 1.确定JDK版本 因为随着时间的改变,JDK本身也伴随着更改和变化,在解决这个问题前,我们要确定一下jdk的版本,比较老的版本有老的版本的解决方法,比较新 ...
- java问题:错误: 找不到或无法加载主类 HelloWorld
有时候我们需要直接用jdk提供的java命令来执行class文件让软件运行起来,特别是很多初学者,但经常会发现如下提示: D:\java\eclipse-workspace\first\src\fir ...
最新文章
- Node.js实现服务器端生成Excel文件(xls格式、xlsx格式文件)并弹出下载文件
- 人工智能加“医真云”,每年让5700万人告别误诊
- 打造智慧城市 让市场成为主角
- SAP读取财务报表版本的标准函数
- harbor镜像清理:使用registry:2.6.2-photon garbage-collect
- 计算机翻译辅助工具安卓版,计算机辅助翻译软件
- The Everyman's Guide to How Network Packets Are Routed Across the Web
- 字符串拼串 能缓解我们的开发难度→!←(ε=(´ο`*)))唉,又是一个不知道该怎么写题目的随笔啊,头疼)...
- Socket编程实践(11) --epoll原理与封装
- 跪求***基地的邀请码
- (转)智能投顾的中国特色:强需求,大规模,低门槛与巨大提升空间
- 双调欧几里得旅行商问题_遗传模拟退火算法求解旅行商(TSP)问题MATLAB代码讲解...
- matlab匿名函数求导,MATLAB匿名函数和函数句柄
- linux下的文件系统,Linux系统中常见的文件系统有哪些?
- R数据分析:论文中的轨迹的做法,潜增长模型和增长混合模型
- 如何快速搭建自己的github.io博客
- java 插件 地图_[Java教程]插件~使用ECharts动态在地图上标识点
- 进cf一直连接服务器失败怎么办,Win7玩穿越火线提示连接服务器失败的原因及解决方法...
- 第3章 感受(一)——3.12. Hello STL 向量篇
- 如何利用工具低成本构建腾讯云灾备方案?