一、问题描述
java(javac HelloWorld.java)编译通过,(java HelloWorld)运行却 提示找不到或无法加载主类 的一般多见过java初上手,使用命令行的方式运行java程序,一般使用IDE工具是不会遇见的。
二、分析和解决
既然javac编译已经通过,这说明变量 JAVA-HOME 已经配置的没有问题了。
第一种可能就是:问题就出在Path变量对应的变量值上或者是新建用户变量classpath上有问题,你重新配置一下。Path对应的变量值是在原来的变量值前面加上%Java_Home%;而classpath对应的变量值应该设为 .;(注意是英文字符)
第二种可能就是:你的环境变量都是正确的,只是你编译的java源文件中,主函数public static void main(String args[]){}没有写在main这个类中。一个java源文件可以写很多类,编译的时候javac源文件之后,每个类生成一个class文件。你去运行的时候,并不一定是java源文件名,而是去找java主函数所在的那个类名。
第三种可能就是: 你在写java源代码时加了包名,你把它删掉试试或使用javac编译的时候后面加上-d . 即:javac HelloWorld.java -d . 然就再运行的时候加上包名即可。

第四种可能就是: 当前用户权限不够,使用管理员权限运行cmd窗口再试试。也可以尝试在当前cmd 运行 SET CLASSPATH=. 即可设置解释的路径为当前路径,然后再运行java HelloWorld
最后的解决办法:先把原有的java环境变量全删除,按照 windows 10 配置Java 环境变量 重新配置java环境变量,并重启电脑再进行尝试。
需要注意的是:
再尝试完一种方法进行测试时,需要重新打开cmd窗口,不要一直开着cmd的界面反复进行测试,那样会一直按修改前的系统变量执行的。
本文主要介绍了在命令行下运行Java程序时遇到找不到或无法加载主类问题的常见原因及解决方法。首先,确认JAVA_HOME环境变量已正确配置。接着,检查Path和classpath变量,确保它们设置无误,特别是classpath应设为'.'。其次,检查源代码中主函数是否位于正确类内。如果使用了包名,需正确指定编译和运行时的目录。此外,用户权限不足也可能导致此问题,尝试以管理员权限运行CMD。最后,若以上方法无效,可完全删除并重新配置Java环境变量,然后重启电脑尝试。在解决问题时,每次更改后都要关闭CMD窗口以应用新的环境变量设置。
2万+





