如何解决命令行编译运行Java文件时报错Could not find or load main class ...

Java全栈AI视频生成开发实战:从DeepSeek接入到剪映自动化(附完整源码) 【代码】Java全栈AI视频生成开发实战:从DeepSeek接入到剪映自动化(附完整源码) 阅读详情

前言

以前一直用Eclipse来运行Java程序,从未在命令行中编译运行过Java文件。直到最近某次运行别人写的bat文件时,出现“Could not find or load main class …“错误才开始了解如何通过命令行来编译运行Java文件。本文主要尝试说明导致这个错误的原因,以及如何解决。

注意:本文主要以Window下的CMD为讨论对象,linux环境不一定有效。

命令行中Java命令语法

首先,我们需要了解一个正确Java命令的格式是什么,如下所示:

java [ <option> ... ] <class-name> [<argument> ...]

其中option是以”-“开头的命令选项,例如-Xmx100m来指定运行程序时的最大堆内存为100m;class-name是需要运行Java程序的绝对路径;argument是指传入Java程序的参数。

以下面这条java命令为例:

java com.joey.test.date.DateTest

注:查资料说有的JDK版本,java类名不是用“.”来分割,有可能用“/”来分割,那么此时命令如下:

java com/joey/test/date/DateTest

在命令行中输入上面这条命令后(前提是你已经用javac对DateTest.java文件进行了编译),JVM会按以下步骤进行:
1. 需找com.joey.test.date.DateTest这个类编译的Java版本;
2. 将这个类load进来;
3. 检查这个类里面是否有main函数,以及是否有合适的修饰符;
4. 调用main函数或指定的方法;

导致报错的原因:

所以当我们得到这个Could not find or load main class …报错时,说明这条命令不能找到指定的类,在上面的第一步便失败了。有两个原因为导致这条命令找不到指定的Java类:

输入类名格式不正确

1.只简单输入了类的名字

java DateTest

当一个类在包com.joey.test.date下时,我们应该输入完整的路径

java com.joey.test.date.DateTest

2.只输入了类文件的名字

java DateTest.class

此时应该输入类文件的相对路径

java com/joey/test/date/DateTest.class

3.类名没有区分大小写

java com.joey.test.date.datetest

4.类名拼写错误

java com.joey.test.date.DataTest

classpath不正确

1.首先要确定你系统的环境变量CLASSPATH是否配置正确,我的配置如下:

.;%JAVA_HOME%\jre\lib\rt.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

2.检查命令行里的目录名称和JAR包名称是否正确
3.确定在error消息里面类的路径是有效的

在经过上述排查之后,我出现错误的原因是输入类的名称没有打全,并且不需要.java后缀。

【华为OD机试真题】45、 分糖果 | 机试真题+思路参考+代码解析(C++、Java、Py、JS) ### 🎃题目描述 >小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们。 >  当糖果不能平均分配时,小明可以选择从糖果盒中(假设盒中糖果足够)取出一个糖果或放回一个糖果。 >  小明最少需要多少次(取出、放回和平均分配均记一次),能将手中糖果分至只剩一颗。 阅读详情

相关推荐

当R语言遇见MaxENT:参数优化的艺术与自动化调参实践

本文探讨了R语言与MaxENT在生态位建模中的结合应用,重点介绍了参数优化与自动化调参的实践方法。通过caret与ENMeval工具链,研究人员可以高效处理多物种、多环境变量的大规模分析任务,提升模型性能与工作效率。文章还涵盖了从数据准备到结果可视化的全流程,为生态学家提供了实用的技术指导。

corn8的博客 456

Linux部署Nacos启动报错:Could not find or load main class

Linux下使用JDK11部署Nacos启动报错:Could not find or load main class一、报错二、解决方案总结 一、报错 /usr/java/jdk-13.0.1/bin/java -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:H.

MoLi的博客 5040

ArcGIS | 全球新冠肺炎地图数据下载和处理

ArcGIS

thinkpang的博客 2901

Nacos 启动常见错误

1.Could not find or load main class 2.Please set the JAVA_HOME variable in your environment

qq_34253002的博客 2116

ADK 第一篇 Google Agent Development Kit 简介

是一个灵活且模块化的框架,专为开发和部署AI智能体而设计。虽然ADK针对Gemini和Google生态系统进行了优化,但它与模型无关、与部署环境无关,并兼容其他框架。ADK的核心理念是让智能体开发更接近传统软件开发模式,从而帮助开发者更轻松地构建、部署和编排智能体架构——无论是处理简单任务,还是管理复杂工作流。:利用预置工具、自定义函数、OpenAPI规范或集成现有工具,赋予智能体多样化能力,实现与谷歌生态系统的深度整合。

2501_90353350的博客 3043

yolov5部署之七步完成tensorRT模型推理加速

目录前言step 1. 下载yolov5源码以及tensorrtx源码,并将yolov5s.pt转为.wts模型step 2. 确定并下载自己准备使用的CUDA版本。step 3. 根据自己的CUDA版本下载对应版本的cuDNN以及TensorRTstep 4. 根据自己使用的VS版本下载对应版本的OpenCVstep 5. 安装CUDAstep 6. 安装cuDNN、TensorRT以及验证TensorRT是否安装成功 前言     前段时间研究了Pytorch的环境配置,之后便从github上下载了yo

Christo的博客 4万+

Linux下执行jar包出错:Error: Could not find or load main class解决办法

问题描述: Linux下执行jar包时候报错,找不到或无法加载主类. 解决办法: 1.将当前目录加入系统变量CLASSPATH,系统才能找到当前目录下的Java类 , vi /etc/profile ,按照将jar包的目录加到PATH中,保存退出后source /etc/profile让文件生效。 2.由于本人项目中使用的是maven环境,当时在IDEA中运行代码后就直接进行package了,没有进行compile,确实忘记compile了,怪不得每次都报错,可以删除之前的jar包重新编译.

mo 2万+

-如何搭建聚合支付系统

聚合支付市场分析 移动支付已经越来越大众化,其中使用人群集中的两种支付不外就是微支付,支付宝支付!  很多线下都是整合了微支付与支付宝支付;很多消费者到店消费问的第一件事情就是可不可以微信支付,或者支付宝支付  可以说移动支付是未来的一个大趋势;现在人们出门基本上都不用带现金了,可以说是一机在手走遍天下都不怕 可以说现在移动支付是一个趋势! 原本刚刚出来的时候,支付宝是一个支付码,微支付

q744803399的博客 3196

Eclipse出现“错误:找不到或无法加载主类”

问题: Eclipse出现“错误:找不到或无法加载主类”(Error: Could not find or load main class) 解决: 删除工程中的.classpath和.project文件 点击某个.java文件,右键选择【Run As】->【Run Configurations】,(或者菜单栏【Run】->【Run Configurations】) 在弹出框的左侧边栏中找到Ja

我的博客 6201

华为OD机试真题2025双机位C卷 Java&Go 实现【卡牌游戏】

小明正在尝试一种新的牌游戏。游戏规则只如下:首先,小明拿到一张写有数字m的牌。 然后,他会拿到另外n张牌,上面分别写有不同的数字,牌排成一排。小明的目标是从这排牌中找到一串连续的牌,这些牌上数字的总和可以被 m整除。你的任务是判断小明是否可以完成这个目标。

MISAYAONE的博客 394

Arduino 系列:Arduino Due 系列 (基于 ATSAM3X8E)_(5).电源管理与电压调节

电源管理与电压调节是确保嵌入式系统稳定性和可靠性的关键环节。通过合理选择电源输入方式、使用高效的电压调节器、设计适当的滤波电路和实施动态电源管理,可以有效提高系统的性能和寿命。同时,使用电源调试工具和编写调试代码,可以帮助开发者及时发现和解决问题。希望本文档能为使用 Arduino Due 的开发者提供有用的信息和指导。

2401_87715305的博客 1310

【已解决】Error: Could not find or load main class jar

运行java -jar xxx.jar的时候弹出这个 error,

奇异果的博客 4167

《QGIS快速入门与应用基础》151:批量属性值赋值(字段计算器)

本文介绍了QGIS中字段计算器的批量属性值赋值方法,重点讲解了简单赋值(统一值和递增序列)的操作步骤与表达式应用。文章首先强调数据备份、字段类型确认等必要前提,随后详细解析字段计算器的界面功能分区和打开方式。通过具体场景示例,展示了如何为图层统一赋值固定值或生成连续编号序列,并提供了文本、数字、日期等不同字段类型的表达式模板。文中特别提醒新手优先创建新字段而非直接更新现有字段,以避免数据丢失风险,同时推荐使用$id和rownum()函数实现基础序列生成。该教程适合GIS初学者快速掌握批量属性编辑的核心技能。

LuckyHanMo的博客 491

Java Could not find or load main class详解

Java Could not find or load main class详解 在使用java命令跑java编译好的class文件时,经常会碰到这个错误,本篇博文详细解释下为何会出现这个错误。 首先,java命令正确的语法如下: java [ <option> ... ] <class-name> [<argument> ...] 其中应为一个Java cl...

zdash21的博客 4万+

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

javac学习-“Error: Could not find or load main class Main”

javac学习-“Error: Could not find or load main class Main” 一、上报错代码 package hello; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } } 编译后,运行报错 $ javac HelloWorld.java $ java HelloWorld Er

李猿外的博客 9667

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Linux运行java文件报错:Error: Could not find or load main class

Linux运行java文件报错:Error: Could not find or load main class

qq_41683000的博客 6434

关于命令行上执行java命令的错误分析 - Could not find or load main class

成功的安装了JDK和Eclipse后,在开发测试Java工程中,很少会遇到开发环境问题。这都归功于Eclise通过工程 (project)和包(package)把这些管理好。 但偶尔在命令行下编译和运行Java文件时,还会遇到如下错误: (以下示例都是在Win7上进行) D:\jtest> java J_Hello 调试此类问题可遵循如下步骤: 1. 检查环境变

xyz0330的专栏 1万+

Java - could not find or load main class

Java 初学者,记录自己在学习Java的过程中遇到的一些问题以及解决方案 -------------------------------------------------------------------------------------------------------------------------------------------------------------

zjyforuok的博客 1万+

命令行使用java运行程序报错:Could not find or load main class

在初学java的时候希望新建一个类并且在命令行中运行它,偶尔会出如题的报错,具体过程如下: d:/demo.java: public class Demo{ public static void main(String args[]) { System.out.println(args[0]); } } 进入到目录d:/使用javac编译demo.java为dem...

ALEX的博客 1万+

linux-Could not find or load main class

linux上运行编译后得java字节码文件,找不到主类错误。

iechenyb专栏 2万+

【转】Linux执行Java 报Java Error: Could not find or load main class

转自:http://blog.zhengshuiguang.com/linux/linux-java.html Linux执行Java 报Java Error: Could not find or load main class 原因确实是环境变量配置问题: vim ~/.bash_profile 添加以下内容,注意CLASSPATH一定要以.:开头(因为:是分隔符,.表示当前目录,一般情况下我们编译的class文件在java文件同级目录,所以需要添加当前目录) 1 2 .

wutongyu344的专栏 884

Java中运行项目显示Error: Could not find or load main class com.xxx.xxxx

在完成代码后运行代码,项目报Error: Could not find or load main class com.xxx.xxxx的错误 原因是代码没有编译生成.class文件 解决方法简单粗暴,如下: 先将项目clean一下 然后重新编译: 最后运行项目,问题解决!! ...

weixin_50998273的博客 2490

Linux 下 Error: Could not find or load main class Hello

在linux下写了一个非常简单的Hello world程序,编译运行竟然报错:Error: Could not find or load main class Hello 最后发现是CLASSPATH的问题。 首先需要检查jdk环境变量是否配置正确:参考这篇文章:ubuntu12.04 安装配置jdk1.7 主要在环境变量这块: export JAVA_HOME=/usr/java/jdk

Eliot 5万+

java报错-找不到或无法加载主类(Error: Could not find or load main class)

比如说test.java package test; public class test{ public static void main(String[] args) { System.out.println(&quot;Hello Word !&quot;); } } 运行java文件需要先编译: javac test.java 然后运行: java test 有时在运行时,...

个人博客 2万+

Error: Could not find or load main class xxx

文章目录问题背景原因解决办法 问题背景 在idea写的java并且已经编译好了,然后在mac的命令行下输入java xxx; 出现报错Error: Could not find or load main class xxx 原因 可能是真的没写main()函数 没有找到正确位置,看看代码的第一行是否有写package xxx;例如package chatperOne 解决办法 针对第二种现象,...

Netooo的博客 1991

记事本编译运行Java程序 报错Could not find or load main class ...解决办法

一直都用Eclipse编译运行Java程序,为了更好地了解Java程序的编译运行过程,手动地编译Java应用程序,因为涉及到不同的包,所以遇到不少问题。比如Could not find or load main class … 记录下这篇文章希望后来的朋友不要踩坑。 下面,让我们来看一下Java程序的编译运行具体过程。 首先,在测试文件夹下,新建io和model两个目录。分别作为类Main和...

Charles的博客 5万+

IDEA运行报错“Error: Could not find or load main class”?这7种场景你只排查了前2种(附自动检测脚本)

快速解决IDEA找不到主类问题!覆盖7种真实场景(含模块配置、类路径、Maven依赖等),附赠自动检测脚本一键定位根源。方法实测有效,排查效率提升3倍,值得收藏。

DeepLens的博客 248
上一篇: Java中创建对象的5种不同方法
下一篇: “Can't start Eclipse - Java was started but returned exit code=13”问题解决办法
WeakFantasy
博客等级 码龄11年 11粉丝 16原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值