Java:cmd命令行中 错误: 找不到或无法加载主类(从原理出发讲解!)

您所在的位置:网站首页 java报错找不到或无法加载主类 Java:cmd命令行中 错误: 找不到或无法加载主类(从原理出发讲解!)

Java:cmd命令行中 错误: 找不到或无法加载主类(从原理出发讲解!)

#Java:cmd命令行中 错误: 找不到或无法加载主类(从原理出发讲解!)| 来源: 网络整理| 查看: 265

参考阅读(推荐)

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

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

知识点

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 public static void main(String[] args) { for (int i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3