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

使用命令行运行java的class文件提示“错误:找不到或无法加载主类”的问题解决 使用命令行运行java的class文件提示“错误:找不到或无法加载主类“的问题解决问题如下问题解决 问题如下 TestOne.java package moon.star; public class TestOne { public void fTestOne() { System.out.println("I an a method In TestOne class"); } } ... 阅读详情

我在网上找了很多教程都没有解决,很多都是说修改classPath路径,但是java9以后就不需要修改ClassPath路径了,jdk的lib中也没有dt.jar 和tool.jar两个包的文件,通过看下面的博客,我成功解决了问题。

有时候我们需要直接用jdk提供的java命令来执行class文件让软件运行起来,特别是很多初学者,但经常会发现如下提示:
在这里插入图片描述

用eclipse或用ant则没有问题。

其实原因很简单,我们忽略了2个细节。

1.java指令默认在寻找class文件的地址是通过CLASSPATH环境变量中指定的目录中寻找的。(java9以上版本可以忽略)

2.我们忽略了package的影响。

第一个问题好解决:

我们直接在CLASSPATH环境变量中加入“.;”即可。“.”的意思是搜索当前目录

第二个问题看下面分析:

看下面两个类
在这里插入图片描述在这里插入图片描述

               类A                                                                   类B

类A和类B的唯一差别就是没有定义包名。

我们的工程路径是D:\HelloWorld,在HelloWorld文件夹中建立一个src文件夹,类B的源代码文件就放在src中。用javac编译完以后

会在src文件夹中生成NewsManager.class,如下
在这里插入图片描述

执行如下:
在这里插入图片描述

现在我们再把源代码换成类A
在这里插入图片描述

为什么加入了package后就不对了呢?

类A中package的路径是org.will.app.main。按照java规定,我们应该按照package定义的路径来存放源文件,类A应该放入:

src\org\will\app\main下,如下:
在这里插入图片描述

然后我们编译执行:
在这里插入图片描述

依然有问题,为什么,其实大家再回去看看java的书籍就会发现,一个类的全名应该是包名+类名。类A的全名:org.will.app.main.NewsManager

好的,再试试:
在这里插入图片描述

还是不对。为什么?

仔细看上面的图,我们在main目录下让java命令去执行org.will.app.main.NewsManager,其实它会以为类的路径是:

D:\HelloWorld\src\org\will\app\main\org\will\app\main\NewsManager,大家看到了吧,路径重复了。

所以,我们应该这样执行:
在这里插入图片描述

成功!

总结:

一、java执行class文件是根据CLASSPATH指定的地方来找,不是我们理解当前目录。如果希望它查询当前目录,需要在CLASSPATH中加入“.;”,代表当前目录。

二、java执行class文件对package的路径是强依赖的。它在执行的时候会严格以当前用户路径为基础,按照package指定的包路径转化为文件路径去搜索class文件。各位同学以后注意就OK啦。至于网上说的要在CLASSPATH要加各种包等等都是泛泛而谈,真正静下心分析这个问题的资料不多。很多都没有说到点子上,会误导人的。

ROS2 机械臂末端刀具执行曲面路径规划入门教程 Noether工具路径规划系统摘要 Noether是一款用于网格曲面刀具路径规划的软件,支持喷涂、打磨、检测等机器人工艺流程。其核心流程分为三步:1)网格修改(平滑、分割等预处理);2)刀具路径规划(生成有序路径点序列);3)刀具路径修改(姿态调整等后期处理)。系统提供栅格规划和边界规划两种模式,支持自定义扩展。配套GUI工具可配置完整流程,包含网格处理、路径生成和可视化功能。通过示例演示了多组件网格处理、拼图边缘铣削等典型应用场景,并指导用户进行插件开发,实现圆柱体提取、摄像机悬停等定制化功能。系统采用模 阅读详情

相关推荐

手把手教你用VM实现欧姆龙PLC数据采集(含Fins协议配置详解)

本文详细介绍了如何使用VM(VisionMaster)实现与欧姆龙PLC的数据采集,重点解析了Fins协议(包括Fins TCP/UDP)的配置步骤。从网络环境搭建、PLC的IP地址设置,到VM端Fins通讯通道的详细配置与数据点映射,提供了完整的实战指南。文章还涵盖了数据收发解析、常见问题排查清单,帮助工程师快速完成视觉系统与PLC的稳定集成。

weixin_29171087的博客 189

java10 运行“HelloWorld”错误:找不到或无法加载主类 原因: java.lang.ClassNotFoundException 的方法

我安装的版本是java10,看网上的说法是这个版本配置环境变量的话只需要设置 1.%JAVA_HOME%: jdk的安装目录 我的是D:\javajdk 2.path:%JAVA_HOME%\bin 设置这两个就足够了,不用再设置classpath。 测试的时候,输入“java -version”,“javac”命令都成功了,当运行编写的小白文件“HelloWorld.java”...

Hhhana的博客 4万+

使用IntelliJ IDEA配置版本管理(SVN和Git)

在开发过程中,版本管理是必不可少的一部分,它可以帮助团队协作、管理代码历史记录,并且提供了代码回滚和分支管理等功能。本文将介绍如何使用IntelliJ IDEA配置版本管理,包括SVN和Git两种方式,另外列举了常见的问题并指导修复,以帮助开发者更高效地进行代码管理和协作。

2870

ant中com.sun.tools.javac.Main is not on the classpath问题的解决方案

以上问题出现在使用eclipse编写ant脚本时使用javac标签时,在网上查询大量资料后都指出是编译器JDK版本设置混乱的原因。本人经过试验后总结如下两点: 1、问题指出JAVA_HOME没有指向jdk,针对此我们需要检查自己电脑上的环境变量JAVA_HOME,看是否出错。 2、在反复检查JAVA_HOME路径没有出错后,还是出现以上的问题时,我们需要检查ant的classpath路径,看是

ws7896的专栏 2956

高通平台Camera sensor bring up!

Qualcomm Camera sensor bring up!0. 准确1. Kernel 底层驱动配置1.1 dtsi1.2 pinctrl2. Chi-Cdk XML 配置2.1 sensormodule2.2 sensor3. CHECK 本文主要针对高通平台SM7250进行描述,当然高通平台可能基本都差不多【第一个项目】 —only for sensor probe sucess. 0....

Understand-image 9239

PyQt(Python+Qt)学习随笔:PyQt界面派生类构造方法中super方法的使用

老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在《第15.7节 PyQt入门学习:PyQt5应用构建详细过程介绍》和订阅专栏《第二章、PyQt5应用构建详细过程介绍》中,老猿介绍界面派生类的构造方法如下: class MediaPlayerWin(QtWidgets.QWidget,Ui_UI_PlayerWin): def __i...

老猿Python 2711

Java路径问题最终解决方案—可定位所有资源的相对路径寻址

Java路径问题最终解决方案 —可定位所有资源的相对路径寻址前言

【良少课堂】 4万+

分级 API Key 的使用案例

分级 API Key 的使用案例 1. 背景介绍 1.1 问题由来 随着网络服务的普及,API(Application Programming Interface,应用程序编程接口)成为了连接不同系统和应用的关键桥梁。API Key(API密钥)

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 994

vscode maven项目报错xxx is not on the classpath...

VSCODE中创建maven项目,将指定文件夹作为source paths 使用vscode搭建web项目,配置好maven环境之后产生以下问题 在src目录下新建java文件夹,在该文件夹下新建java文件,报错:xxx is not on the classpath… 解决办法:在项目目录下的pom.xml中的标签中添加指定source path ...

weixin_44678951的博客 7311

【读代码】SQLBot:开源自然语言转SQL智能助手原理与实践

SQLBot是 DataEase 团队开源的自然语言转 SQL 智能助手,致力于让非技术用户也能通过自然语言与数据库对话,自动生成 SQL 查询,实现自助数据分析、智能BI问答、报表生成等场景。SQLBot 结合了大语言模型(LLM)、数据库元数据解析、SQL解析与执行等多项技术,具备强大的多数据库适配能力和灵活的扩展性。降低数据分析门槛,让业务人员无需掌握SQL即可获取数据洞察支持多种数据库类型,适应企业多样化数据环境提供可扩展的API和插件机制,便于集成到各类BI、数据平台和业务系统。

kakaZhui的博客 829

〔重庆理工大学〕计算机网络实验指导书【实验九 直连路由,静态路由,默认路由配置】

本实验指导书介绍了直连路由、静态路由和默认路由的配置方法。主要内容包括:1)路由器基础知识,包括直连路由、静态路由和动态路由三种路由生成方式;2)路由度量值与匹配顺序,解释了不同路由类型的优先级;3)实验任务分为三个部分:直连路由的查看分析、静态路由的配置以及默认路由的配置,详细说明了配置步骤和命令。实验要求通过模拟器搭建网络环境,完成路由配置使PC间能够互通。实验旨在帮助学生掌握不同路由类型的工作原理和配置方法,适用于简单的网络环境。

Pretty Boy Fox的博客 1056

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

使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析 有时候我们需要直接用jdk提供的java命令来执行class文件让软件运行起来,特别是很多初学者,但经常会发现如下提示: 用eclipse或用ant则没有问题。 其实原因很简单,我们忽略了2个细节。 1.java指令默认在寻找class文件的地址是通过CLASSPATH环境变量中指定的目录中寻找的。 2....

hk121的博客 3970

YOLOv8改进 | 特殊场景检测篇 | 最新的多尺度特征提取DICAM(全网独家首发,增强水下图像的质量)

本文给大家带来的最新改进机制是多尺度特征提取和通道注意力机制DICAM,深度Inception和通道注意力模块(DICAM)主要用于用于增强水下图像的质量、对比度和色偏。所提出的DICAM模型考虑了水下图像的比例退化和不均匀色偏,从而提高图像的质量。通过在两个公开的水下图像增强数据集上的广泛实验,验证了提出的模型在全参考和无参考图像质量评估指标方面。欢迎大家订阅我的专栏一起学习YOLO,购买专栏读者联系读者入群获取进阶项目文件!

Snu77的博客 2216

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

此文转自大C的博客园,以备自己以后查询此问题。点击打开链接 使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析 有时候我们需要直接用jdk提供的java命令来执行class文件让软件运行起来,特别是很多初学者,但经常会发现如下提示: 用eclipse或用ant则没有问题。 其实原因很简单,我们忽略了2个细节。 1.java指令默认在

mzt1997的博客 505

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

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

NTscan扫描工具

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

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

原文地址:https://www.cnblogs.com/wangxiaoha/p/6293340.html 使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析 有时候我们需要直接用jdk提供的java命令来执行class文件让软件运行起来,特别是很多初学者,但经常会发现如下提示: 用eclipse或用ant则没有问题。 其实原因很简单,我们忽略了2个细节。...

u013430672的专栏 562

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

      java学习笔记: (一)      我最近刚开始学习java,使用IDE为 IntelliJ IDEA ,在使用的时候我发现在IDE里run成功的java程序,使用cmd命令行可以编译完成,但是使用java命令解释执行文件时,一直会提示错误:找不到或无法加载主类 java.lang.NoClassDefFoundError折个提示,在知乎百度都搜索了很久,没有找到适合自己的解决方案,...

slientpanda的博客 8049

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: 第5章 漂亮的盒子 第6章 内容布局(精通CSS)
下一篇: Activity的四种启动模式
printf_myself
博客等级 码龄7年 1粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值