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

news2025/2/25 21:16:10

前言

之前遇到过几次,后面稀里糊涂的解决了。今天详细记录一下,可能不全或有些错误,还请各位指正。

你要启动一个类的话首先要有类。

在这里,类有两种,

  • 一个是带包名(package)的
  • 还有一个是没包名(package)的

但都需要有一个公共的静态 main方法,不然怎么也启动不了。

一、不带包名的

我们以一个路径为E:\demo\Welcome.java的例子导入

// Welcome.java
public class Welcome {
    public static void main(String[] args) {
        System.out.println("Welcome to learn Java!");
    }
}

在这里插入图片描述

1、编译运行

在终端中,编译运行成功的正确操作是:

  • 进入类所在的文件E:\demo
    在这里插入图片描述
  • 使用javac Welcome.java进行编译生成class文件
    在这里插入图片描述
    在这里插入图片描述
  • 使用java Welcome运行成功
    在这里插入图片描述

2、注意事项

  • 如果手工输人源程序,一定要注意正确地输人大小写。例如,类名为welcome,而不是welcome或WELCOME。

  • 编译器需要-一个文件名(Welcome.java), 而运行程序时,只需要指定类名(Welcome), 不要带扩展名.java 或.class。

  • 如果看到诸如Bad command or file namejavac:command not found之类的消息,就要返回去反复检查安装是否有问题,特别是可执行路径的设置。

  • 如果javac报告了一个错误,指出无法找到Welcome.java,就应该检查目录中是否存在。

    • 在Linux环境下,检查Welcome.java是否以正确的大写字母开头。
    • 在Windows环境下,使用命令dir,而不要使用图形浏览器具。有些文本编辑器(特别是Notepad)会在每个文件名后面添加扩展名.txt。如果使用Notepad编辑Welcome.java,实际上会把它保存为Welcome.java.txt。

3、java. lang.NoClassDefFoundError错误的原因

  • 如果收到关于welcome (W为小写)的错误消息

    应该重新执行命令: java Welcome(W为大写)。记住,Java区分大小写。

  • 如果收到有关demo/java的错误信息

    说明你错误地键人了java Welcome.java , 应该重新执行命令java Welcome。

  • 如果键入java Welcome, 而虚拟机没有找到Welcome类,就应该检查是否有人设置了系统的CLASSPATH环境变量(将这个变量设置为全局并不是提倡的做法,然而,Windows中有些比较差的软件安装程序确实会这样做)。可以像设置PATH环境变量–样设CLASSPATH,不过这里将删除这个设置。

二、带包的

在demo文件夹中新建一个Mypackage文件夹里面定义一个Welcome2类。E:\demo\MyPackage\Welcome2.java

// Welcome2.java
package MyPackage;

public class Welcome2 {
    public static void main(String[] args) {
        System.out.println("Welcome to learn Java222!");
    }
}

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1、编译运行

  • 命令行进入当前文件夹

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 使用javac Welcome2.java完成编译,生成class文件

    在这里插入图片描述

  • 使用java命令运行程序

    • 这里与不带包的类运行有所不同

    • 在当前类文件夹下使用java Welcome2会报找不到类的错误(我不知道为什么)

      在这里插入图片描述

    • 此时应该退回package所在的目录,这里是demo文件夹使用java运行,但是有由一些问题:

      使用java MyPackage\Welcome2(tab自动补全的)也会报错(我也不明白-_-!)

      使用java MyPackage/Welcome2运行成功

      在这里插入图片描述

  • 直接在package所在目录下编译也是可以的

    在这里插入图片描述

2、错误

其他错误原因同不带package的类。

三、总结

  • 不带package的类

    直接在类所在目录下编译运行即可,常见的错误为类不存在、类名写错、环境配置……

  • 带package的类

    在package所在目录下编译运行,注意路径不要用tab键生成的\符,而是用/,否则也找不到。不清楚是为什么,欢迎大神评论指出。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/990809.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

lvs负载均衡、

四:LVS集群部署 lvs给nginx做负载均衡项目 218lvs yum -y install ipvsadm 设置VIP 定义策略 ipvsadm -C //清空现有规则 -A增加虚拟服务器记录 -D删除虚拟服务器记录 -L查看 150web-111 配置好网站服务器,测试所有RS [nginx-stable] namengin…

网络原理(二)TCP的可靠传输

网络原理(一)目录 网络原理应用层传输层先说UDP(不可靠传输)重点说明TCP(可靠传输)一、确认应答二、超时重传三、链接管理建立连接断开链接 四、滑动窗口五、流量控制&am…

性能指标都不了解,如何做性能测试?

1、性能指标在性能测试的作用? 性能指标在性能测试中起着非常重要的作用,它们帮助我们评估和了解系统的性能表现。下面用通俗易懂的话来解释性能指标的作用和意义: 帮助我们了解系统的处理能力:性能指标可以告诉我们系统在给定负…

目标检测评估指标mAP:从Precision,Recall,PR曲线到AP

1. TP, FP, FN, TN True Positive 满足以下三个条件被看做是TP 1. 置信度大于阈值(类别有阈值,IoU判断这个bouding box是否合适也有阈值) 2. 预测类型与标签类型相匹配(类别预测对了) 3. 预测的Bouding Box和Ground …

[react基础]关于v6版本route的变化,以及常见应用模式

该说不说,在做这些之前,你要记得一件事 route不是react或者vue等原本就有的组件!需要你手动下载!然后导入! 原本的框架只是最终挂载到一个html界面上!!! 别再问我为啥你扒下来的代码为啥不好使了! 讨厌 > _< 下载指令去看我另一篇推文 今天复盘了一下自己的实训…

pyCharm远程DEBUG

第一步&#xff0c;添加一个远程机器的解释器 ssh 远程机器解释器添加&#xff0c; 我本地ssh有配置目标机器。 如果没配置&#xff0c;那就选着new server configuration 新增一个。 interpreter 指定远程机器python&#xff0c; &#xff08;机器上有多个版本python里尤其要…

【LeetCode-中等题】22. 括号生成

文章目录 题目方法一&#xff1a;递归&#xff1a;方法二&#xff1a;递归回溯 题目 方法一&#xff1a;递归&#xff1a; 递归入口 空子结果集&#xff0c;左括号数目&#xff08;初始为0&#xff09;&#xff0c;右括号数目&#xff08;初始为0&#xff09; 递归出口 若左括…

Eviews用向量自回归模型VAR实证分析公路交通通车里程与经济发展GDP协整关系时间序列数据和脉冲响应可视化...

全文下载链接&#xff1a;http://tecdat.cn/?p27784 河源市是国务院1988年1月7日批准设立的地级市&#xff0c;为了深入研究河源市公路交通与经济发展的关系&#xff0c;本文选取了1988&#xff0d;2014年河源市建市以来24年的地区生产总值&#xff08;GDP&#xff09;和公路通…

vue 子组件向父组件传递参数 子传父

子组件中写&#xff1a; this.$emit(RowCount,res.data.RowCount); 父组件中写&#xff1a; getMFGLRowCount(val){ //父组件中的方法: 接收子组件传过来的参数值赋值给父组件的变量 //this.totalCount val; alert("这…

CSS整理

目录 CSS中的& 弹性&#xff08;display:flex&#xff09;布局 flex的属性 justify-content align-items flex:1 flex属性 flex-grow&#xff1a;项目的放大比例 flex-shrink&#xff1a;收缩 flex-basis&#xff1a;初始值&#xff0c;项目占据的主轴空间&…

javascript | 变量、函数、属性的命名规则

javascript标识符的命名规则 变量、函数、属性的名字、或者函数的参数&#xff0c;都可称为标识符。标识符可以是按照下列格式规则组合起来的一个或者多个字符。 第一个字符必须是一个字母、下划线_、或美元符号$。数字不可以作为标识符的首字符。其他字符可以是数字、字母、…

华为云云耀云服务器L实例评测|在 Centos Docker 中使用Nginx部署Vue项目

目录 前言 项目构建 使用CentOS部署 安装Nginx 配置Nginx 项目启动 访问重定向 使用Docker部署 编写docker文件 dockerfile nginx dockercompose 项目启动 前言 本期我们测试在云耀云服务器L实例中分别演示如何在 系统镜像Centos 与 应用镜像 Docker 中使用Nginx…

Java多线程(三)多线程的模式--(阻塞队列,定时器,线程池)

多线程的模式--&#xff08;阻塞队列&#xff0c;定时器&#xff0c;线程池&#xff09; 多线程模式&#xff1a; 阻塞队列&#xff08;线程安全&#xff09; 重点是如何自己去实现这种数据结构&#xff1a; ​编辑 定时器&#xff1a; 实现一个定时器&#xff1a; 线程…

两种解法解决LCR 008. 长度最小的子数组【C++】

文章目录 [LCR 008. 长度最小的子数组](https://leetcode.cn/problems/2VG8Kg/description/)解法暴力解法滑动窗口&#xff08;双指针法&#xff09; LCR 008. 长度最小的子数组 解法 暴力解法 //暴力解法&#xff1a; //使用双for循环依次遍历数组&#xff0c;罗列出所有情况…

HTML的段落中怎么样显示出标签要使用的尖括号<>?

很简单&#xff1a; 符号 < 用 < 替代&#xff1b; 符号 > 用 > 替代。 示例代码如下&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>HTML中怎样打出尖括号</title> </head> <b…

AI图片生成 discord 使用midjourney

参考: 不用找咒语了&#xff01;Midjourney图生文功能特征解析&#xff0c;玩转Describe命令&#xff0c;快速搞定AI绘画_哔哩哔哩_bilibili 1 登录 discord 2 点发现 找 midjourney 3 创建 服务器 -> 亲自创建 4 选 仅供我和我的朋友使用 5 起个 服务器名字 6 加bot 由于…

常见的旅游类软文类型分享

假期将至&#xff0c;越来越多人选择出门旅游度过假期&#xff0c;那么各大旅游品牌应该怎么让自己的旅游软文在众多品牌中脱颖而出呢&#xff1f;接下来媒介盒子就给大家分享几个最能吸引受众的旅游类型软文。 一、攻略类软文 和普通的攻略不一样&#xff0c;普通的攻略以用户…

Element--生成不定列的表格

1、对于一些场景&#xff0c;前端可能需要展示不定列数的数据&#xff1b;譬如考勤&#xff0c;可能有的人是一天一次上下班打卡&#xff0c;有的人是一天两次上下班打卡。这个时候统计就需要更具人员做不同的展示&#xff0c;不能固定在前端写死列的属性。 2、代码示例 &…

Linux命令200例:nohup用于在后台运行命令

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌。CSDN专家博主&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0…

直播APP源码搭建:核心的服务器系统

在现代科技的推动下&#xff0c;网络衍生出了各种各样的技术&#xff0c;每个技术都被应用到需要的APP上&#xff0c;直播APP源码搭建出来的APP就是其中的一个&#xff0c;然而&#xff0c;这些技术能够成功的在直播APP源码搭建的APP中稳定的为用户们提供功能与服务&#xff0c…