java命令报错-找不到或无法加载主类

IDEA 错误 找不到或无法加载主类(完美解决) 问题报错 找不到或无法加载主类 问题截图 猜测:1,未能成功编译;尝试:菜单—》Build—》Rebuild Prodject结果:启动服务仍然报同样的错误2,缓存问题;尝试:菜单—》File—》Invalidate Caches/Restart 选择Invalidate and Restart 或者 只是Invalidate,清除掉缓存,然后 >Rebuild Project 虽然在网... 阅读详情

在学习java和算法过程中,有时需要使用java的编译和执行命令。但是有时总是会出现这种场景:javac命令编译成功了,但使用java命令执行二进制class文件时,报找不到或者无法加载主类的错误,如下图。谷歌百度了一把,发现网上说的那些都是扯淡的,没有一个说到点子上了。经过思考实践看书,总算知道原因了。



首先,我们先看下javac和java命令的区别,具体可以参考《java核心技术卷二》的4.7.3章节(将类放入包中)和4.8章节(类路径)。

1. javac命令,编译源文件.java,产生二进制.class文件。这个命令是有javac编译器实现的,执行时会去查找类。我们都会在环境变量中设置classpath,这个类路径就是javac命令查找文件的顺序。例如classpath设置为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;, 那么javac命令时,首先查找当前目录,如果没有类文件,则查找第二个路径,以此类推知道找到,否则报编译错误。javac命令查找类路径是以文件分隔符”\”查找的。

2. java命令,执行二进制class文件。该命令是java解释器命令,执行java命令也是同样会去查找类路径。就拿这个例子来说,执行java Test命令的查找类的步骤为,首先查找当前目录下的包路径,查看是否有该类,如果没有查找%JAVA_HOME%\lib\包路径下有无该类,其次查找%JAVA_HOME%\lib\tools.jar\包路径下有无该类。java命令加载类路径(包路径)是通过“.”或者“\”来作为分隔符的,

通过上面两个命令的区别,很容易看出来,上面截图中执行的java Test,会去该路径下执行Test.class:D:\workspace\practice_JEE\test4\src\com\clq\collection\javacore\com\clq\collection\javacore\javacore\,显然该路径是不存在的,所以会报错。

同理,下面几个路径下执行命令的结果就很容易理解了。

1.不同路径下的javac命令执行结果


2. 不同路径下的java命令执行结果



由此问题可以引申,查阅java编译器、解释器相关内容,后续再学习。


JDK8版本JAVA运行错误:找不到或无法加载主类 HelloJava的原因及解决方案 JDK8版本JAVA运行错误:找不到或无法加载主类 HelloJava的原因及解决方案一、错误描述二、编写HelloJava代码三、在命令行CMD窗口中运行代码四、错误原因分析解决方案注: 一、错误描述   1、安装jdk1.8   2、配置path变量:E:\Program Files\Java\jdk1.8.0_211\bin   3... 阅读详情

相关推荐

Java程序中的“找不到或无法加载主类“错误解决方法

综上所述,"找不到或无法加载主类"错误通常是由类名和文件名不匹配、类路径设置错误、包声明不正确、访问修饰符问题、缺少main()方法、编译错误或Java版本兼容性问题引起的。如果您的主类的访问修饰符是"private",其他类将无法访问它,包括JVM。如果您使用的是集成开发环境(IDE),请检查IDE中的编译错误和警告,确保代码正确编译。例如,如果类名是"MainClass",则文件名应为"MainClass.java"。是包含类文件的目录或JAR文件的路径,"MainClass"是您的主类名。

PixelEnigma的博客 2万+

Java命令行运行错误: 找不到或无法加载主类

前言:虽然学习Java语言约有两年多,但在最近需要使用命令行工具编译并运行Java程序时,还是报错了。花费了一些时间,解决了该问题,发现解决方法在初学Java时使用过。一则,为了避免以后再出现同样的问题而浪费不必要的时间;二则,作为使用该语言的程序员,对于该语言的一些基本问题,应该有清晰的理解和认识;三则,网上的一些解决方案,不够完备。有的没有解释问题原因,直接给出答案;有的,未列举出某些常见情况的解决方案。因此,写此文章,让读者可以举一反三,深入理解问题。 一、 问题分析 找不到或无法加载主类,主要原因有

gao_zhennan的博客 44万+

STM32驱动MG996R舵机的PWM控制与闭环原理

舵机是一种典型的模拟闭环伺服系统,其核心是通过电位器反馈实现角度位置的自动校正。工作原理基于负反馈控制:目标PWM脉宽决定期望角度,电位器输出实时反馈实际角度,控制电路计算偏差并驱动电机消除误差。该机制赋予舵机强带载能力与抗干扰性,是机器人、云台、智能执行器等场景的关键执行单元。在嵌入式开发中,STM32通过定时器生成标准20ms周期、0.5–2.5ms脉宽的PWM信号,需严格遵循电气规范,并解决PA15引脚SWJ复用冲突、定时器重映射及CCR精度计算等关键问题。本文深入解析MG996R舵机控制全流程,涵盖

weixin_42600407的博客 562

java命令报错——找不到或无法加载主类

java命令报错——找不到或无法加载主类

qq_56825025的博客 4万+

T100服务端接口实战:从注册到日志排查的全链路开发指南

本文提供了一份T100服务端接口开发的全链路实战指南。从程序注册与框架签出开始,详细讲解了接口的数据结构设计、核心业务逻辑编写,到最终的部署上线与调用验证。文章重点分享了如何利用日志文件高效定位和排查接口问题,帮助开发者快速掌握T100接口开发的关键步骤与实用技巧。

weixin_28831399的博客 300

LVGL的基础知识总结

另外,还有自定义字库的使用,具体可参考开发手册。

qq_28576837的博客 7390

【Java】java命令报错-找不到或无法加载主类

DOS命令更换盘符的命令 我想进入:F:\javaWeb\22-Servlet_laodu\src\Servlet本质 java命令报错-找不到或无法加载主类 编译通过,运行报错找不到或无法加载主类 第一件事:先检查环境变量是否配置正确: (1) JAVA_HOME配置到jdk所在目录,比如你的jdk安装在E盘的java文件夹下,那这个就配置成E:\Java\jdk1.7.0。 (2) clas...

你今天真好看呀 720

保姆级教程:用QSTEM和DrProbe搞定你的第一张STEM模拟图(附Fe3O4实例文件)

本文提供了一份详细的STEM模拟图像生成教程,涵盖从晶体结构获取到最终图像模拟的全过程。通过QSTEM和DrProbe软件的操作指南,帮助材料科学研究者快速掌握STEM模拟技术,特别适合初学者。教程包含Fe3O4实例文件,详细解析参数设置、计算优化和结果分析等关键步骤。

weixin_33730836的博客 523

Java 命令报错:找不到或无法加载主类

我使用的 Java 版本是: java version "1.8.0_191" 代码目录结构: ClassPathDemo.java: package com.jiaobuchong; import java.util.HashSet; import java.util.Set; import org.apache.commons.lang3.StringUtils; public cla...

jiaobuchong的专栏 6353

html一号店项目代码,项目一号店素材(html模板)

【实例简介】【实例截图】【核心代码】oneShop├── css│ ├── ShopShow.css│ ├── base.css│ ├── load.css│ ├── logo.css│ ├── register.css│ └── style.css├── detail.html├── images│ ├── Thumbs.db│ ├── a_close.png│...

weixin_35390150的博客 4989

手把手教你学Simulink--基于飞轮储能系统的场景实例:飞轮储能与锂电池混合储能系统的协同控制

本文详细介绍了基于Simulink的飞轮储能与锂电池混合储能系统协同控制建模方法。通过高通/低通滤波器实现功率分配,使飞轮处理高频波动(±100kW),锂电池承担削峰填谷(50kW)。仿真结果表明,该系统效率达88%,锂电池循环次数减少90%,投资成本比纯电池方案节省200万美元。文章包含完整的建模步骤、控制策略设计和多场景仿真分析,为构建高效、长寿、经济的智能储能系统提供了实用解决方案。

MHD0815的博客 342

用cmd命令行编译JAVA文件报错找不到或无法加载主类

在cmd命令行编译JAVA文件报错找不到或无法加载主类 在cmd命令行编译Java文件出现编译成功但是不能运行的错误时,是由于jdk的环境变量的配置存在问题。相信同学们已经按照相关教程配置过环境变量,但是仍然达到想要的效果。 笔者之前也被这个问题困扰好久,在查阅相关资料后,总结以下关于此问题产生的原因和解决方法。 情况1: jdk的环境变量位置靠后且前面存在同样可以执行部分java编译功能的路径,导致系统执行时只采用前面功能不全的路径。 解决这个问题需要将jdk的路径提前至首位。首先我们打开环境变量配置窗口

weixin_47145019的博客 2909

置顶必读(1) |《滚雪球学SpringBoot 3.x》· 高质量专栏介绍,你值得拥有!

《滚雪球学SpringBoot 3.x》 并不是普通的技术讲解合集,它是专为开发者精心设计的系统化学习路径。通过不断“滚动学习”,我们将带领你从基础入门到高阶应用,从理解每一行代码到设计和优化大规模分布式系统,最终帮助你成长为一位精通 spring架构 的工程师。

**My Coding Family** 12万+

java文件命令行报错: 找不到或无法加载主类XXX报错及解决

之前遇到过几次,后面稀里糊涂的解决了。今天详细记录一下,可能不全或有些错误,还请各位指正。你要启动一个类的话首先要有类。在这里,类有两种,一个是带包名(package)的还有一个是没包名(package)的但都需要有一个公共的静态main方法,不然怎么也启动不了。不带package的类直接在类所在目录下编译运行即可,常见的错误为类不存在、类名写错、环境配置……带package的类在package所在目录下编译运行,注意路径不要用tab键生成的符,而是用,否则也找不到。

qq_62254095的博客 2549

【CANoe示例分析】SOMEIPWithvCDL_16

本示例来源于官方提供的示例工程:0004_基于vCDL实现SOMEIP通信_Demo\0004_基于vCDL实现SOMEIP通信_Demo\SOMEIPWithvCDL。

jasonj333 567

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Windows下命令行编译Java报错:错误: 找不到或无法加载主类

Windows下命令行编译Java报错:错误: 找不到或无法加载主类报错原因编译java详解使用 "e:"命令转换磁盘:使用“cd”转换到要去的目录:使用“javac”命令编译.java文件使用“java”命令运行.class文件 报错 原因 在大部分的教材中,使用java JavacTest便可直接运行,可是我们发现出现这样的错误: 错误: 找不到或无法加载主类 大部分的教材使用的类是默认...

Da_Xiong的博客 1239

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

在idea中执行java命令时,报错:“错误: 找不到或无法加载主类 xxx” 的其他解决方案

然后我就在网上寻找各种解决方案,各种解决方案都试过了,都没有效果。后来我才发现,原来我没有把文件顶端的所在包名删除,导致的。错误: 找不到或无法加载主类 Hello。

qq_62488437的博客 405

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

cmd命令行中java报错:找不到或无法加载主类 HelloWorld

2.解析: 关于变量: JAVA_HOME: 配置“JDK”安装目录。(例如:C:\Program Files (x86)\Java\jdk1.7.0) PATH: 配置“JDK命令文件”的位置。(例如:C:\Program Files (x86)\Java\jdk1.7.0\bin) CLASSPATH:配置“类库文件”的位置。(例如:C:\Program Files (x86)\Java\jdk1.7.0\lib)

探索者_wmc的博客 1万+

cmd下java命令报错 找不到或无法加载主类(已解决)

解决办法: 执行步骤:把文件目录转换到目标Demo.java文件所在目录→执行 javac Demo.java 命令(会看到目录下生成新的Demo.class文件)→接着执行 java Demo 命令。 第一步转换目录是必须的(虽然把Demo.java移到 jdk的bin文件夹下,使javac命令临时可用,但后面java命令会报错);第二步如果执行javac命令出现报错:javac不是内部或外...

LS_1998的博客 1973

使用java命令运行class文件报错“找不到或无法加载主类”

可以编译成功,路径也是正确的,可就是报“找不到或无法加载主类”。 其实原因很简单,排除代码拼写错误的情况一般都是以下两个原因引起。 1.classpath环境变量配置问题 java指令默认在寻找class文件时是根据classpath环境变量指定的目录寻找的,直接在classpath环境变量中加入 .;就可以.的意思是在当前目录查找主类,而我的问题是因为.;多了一个 :冒号,去掉之后问题就解决了。 2.文件头部的包名 eclipse会自动为文件加入一个包名 package,而按照java的规定我们必须按照包

echo_heng的博客 2489

java命令运行class文件报错:找不到或无法加载主类

问题提出: 有时候我们需要直接用jdk提供的java命令来执行class文件让软件运行起来,特别是很多初学者,但经常会发现如下提示: 用eclipse或用ant则没有问题。 原因分析: 其实原因很简单,我们忽略了2个细节。 1.java指令默认在寻找class文件的地址是通过CLASSPATH环境变量中指定的目录中寻找的。 2.我们忽略了package的影响。 第一个问题好解决: 我们直接在CLASSPATH环境变量中加入“.;”即可。“.”的意思是搜索当前目录 第二个问题看下面分析:

黄佳俊的博客 2125

cmd窗口中java命令报错。错误:找不到或无法加载主类 java的jdk安装过程中踩过的坑

前面说了这么多,最主要的就是,在安装jdk的过程中,环境变量配置很重要,一不小心就容易在上面犯错。如果以前从未进行过任何开发环境的搭建,则跟着网上教程里配置一般不会出错。但是以前要是配置多开发环境,这时一定要注意,是否会影响当前环境的安装。

HaiJaine的博客 1935

Java命令报错——找不到或无法加载主类

Javac命令 javac命令,编译源文件.java,产生二进制.class文件。这个命令是有javac编译器实现的,执行时会去查找类。我们都会在环境变量中设置classpath,这个类路径就是javac命令查找文件的顺序。 例如classpath设置为: $JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.(针对Mac中的)。 那么javac命令时...

stepMore的博客 511

DOS命令行编译JAVA程序报错:找不到或无法加载主类

DOS命令行编译JAVA程序报错:找不到或无法加载主类 test1 原因: .java的代码文件,在前面加了 package mypack语句 执行程序命令java test1.class中的.class没去掉 解决: 将package语句注释掉。 执行命令中的文件名不要加后缀名。 实际操作验证 ...

qq_41552491的博客 561
上一篇: 条件运算符的嵌套
CodeFellow
博客等级 码龄10年 6粉丝 5原创
评论 24
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值