以下为原答案,不适用于所有问题场景,敬请参考上述链接(讲解非常细致)

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字节码文件,能找到也就能执行了。

  1. 使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析
知识点java your_class_file使用java指令执行class文件时,默认通过CLASSPATH环境变量中指定的地址寻找对应.class文件示例HelloJavaApp类:import java.util.*;public class HelloJavaApp{ public static void main(String args[]){ //入口函数 Syst...
1. CLASSPATH 少写.; 2. 安装jdk过程有两部,一步为安装jdk文件夹,全部一致; 另一步为安装jre文件夹与jdk文件夹不一致 3. path中将java变量移到顶端 4. 关闭cmd界面,重新打开即可 5. 文件路径错误, 应是有空格, 例“java cx”;
使用java命令运行class文件提示“错误不到无法加载主类“的问题分析:  http://www.cnblogs.com/wangxiaoha/p/6293340.html 一个类的全名应该是包名+类名
在编译并打包好java程序后,在命令行输入java -jar Echo.jar,却提示没有主清单属性或者不到无法加载主类。 解决办法:修改MANIFEST文件。 1、例如要运行的包名为Echo.jar,目录com/my/下有两个class,其中EchoDrive.class是需要运行的。 2、用压缩软件(Winrar\7z\Bandizip等)打开jar包,到其中的MANIFEST.MF文件,并用记事本打开。 3、在MANIFEST.MF文件中加上一行:Main-Class: com.my.E
今天遇到一个问题:在cmd命令行中,用javac编译java文件可以成功,但是用java执行却提示“不到无法加载主类”。现将该问题的原因以及解决办法记录一下。 先理解一下系统变量path和classpath的作用。 path:可执行命令的搜索路径,在该路径下搜索可以运行的程序或批处理文件。   命令行中输入一个命令,则会在path配置的目录中查该命令,如果存在则调用该程序运行,如果不存在则提示“ 'XXX' 不是内部或外部命令,也不是可运行的程序或批处理文件。”   如果要想在cmd中执行java
之前安装过jdk,安装另一个版本的jdk,配置环境后出现了不到无法加载主类的问题。经过相关资料查询,整理后有如下情况(其实这些情况都不是我遇到的,我遇到的写在最后)。 1.环境变量配置错误。 -如果javajavac指定能够顺利运行,cmd中没有出现无法识别相关指令之类的提示,说明path路径配置正确。 -此时,运行javac后成功生成.class文件,运行java 类名时出现提示不到无法加载主类,说明classpath路径错误class path是运行时搜索类的路径,包括jdk中的类的路径,
根据引用中提到的问题,当出现"错误: 不到无法加载主类 java"的错误时,可能是由于JDK或操作系统环境的问题。可以尝试在cmd下使用javac和java命令来运行程序,如果仍然报错,则需要检查JDK或操作系统环境是否正确安装和配置。 另外,根据引用和引用中提到的问题,还有可能是项目的Java Build Path中的Libraries中某个jar包不可用,或者jar包的Source attachment指向了一个不可用的jar包。此时,可以尝试删除或重新加载这个jar包,以解决不到主类的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [错误: 不到无法加载主类](https://blog.csdn.net/hacker_Lees/article/details/70765790)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [解决 :提示错误不到或者无法加载主类” 的一个方法](https://blog.csdn.net/weixin_43873711/article/details/103634180)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
[code=python] import numpy as np from sklearn.metrics import accuracy_score, precision_score, confusion_matrix pred = np.array([[1, 0, 2], [2, 2, 1], [0, 1, 0]]) lbl = np.array([[0, 1, 0], [1, 2, 0], [0, 1, 2]]) print(confusion_matrix(lbl.reshape(9), pred.reshape(9))) print(accuracy_score(lbl.reshape(9), pred.reshape(9))) print(precision_score(lbl.reshape(9), pred.reshape(9), average=None)) [/code] 这是我用sklearn库验证的,我上述说的两条应该没有问题。 【语义分割】评价指标:PA、CPA、MPA、IoU、MIoU详细总结和代码实现(零基础从入门到精通系列!) while(n!=1): 你好,在“4 测试代码”中,应该还是行代表真实,列代表预测吧。在函数“classPixelAccutacy”里面的axis也应该为0吧,否则如果像该函数所注释的一行的话则(TP+FP)=confusion_matrix.sum(axis=1),这和函数“Frequency_Weighted_Intersection_over_Union”所注释的(TP+FN)=confusion_matrix.sum(axis=1)冲突。我查了很多资料,代码都大差不差。