命令窗口运行java,出现找不到或无法加载主类

一、摘要

在Idea中可以正常运行的Java程序,在命令行中执行时出现找不到或无法加载主类的错误。解决方案是理解Java的包结构,并正确配置Java的编译和运行路径,确保在程序声明的包基目录下运行以避免加载错误。

二、思路

既然javac编译通过,说明JAVA-HOME配置没有问题

方法一:问题可能出在Path变量对应的变量值上,重新配置一下。Path对应的变量值是在原来的变量值前面加上%Java_Home%;而classpath对应的变量值应该设为 .;(注意是英文字符),但是我觉得跟classpath没有配置没有关系


方法二:环境变量都是正确的,只是编译的java源文件中,主函数public static void main(String args[]){}没有写在java源文件名所在类中。一个java源文件可以写很多类,编译的时候javac源文件之后,每个类生成一个class文件。你去运行的时候,并不一定是java源文件名,而是去找java主函数所在的那个类名。

javac编译的HelloWorld.java,生成了3个.class文件

方法三: 当前用户权限不够,使用管理员权限运行cmd窗口再试试。也可以尝试在当前cmd 运行 SET CLASSPATH=. 即可设置解释的路径为当前路径,然后再运行java HelloWorld

方法四: 源代码在某一包内,没有在根目录下,像小编的源代码是在socket包下,按照原先的办法运行是不行的,我也尝试了在编译的时候加上-d .的参数还是不行,最终实践是运行的时候加上包名即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值