【解决方法】java命令运行class文件提示“错误: 找不到或无法加载主类 Test”

练习:通过命令行给main方法传参,打印版本号。

源码:

我一开始的做法: 

      1.编译:直接找到该文件位置对其编译(javac),编译成功。

      2.执行:但是执行(java)编译生成的字节码文件时,显示找不到主类Test

上网查阅资料后,我在D:\eclipse\sj\src路径下打开cmd,编译时,提供了完整的包路径

执行时也提供了包路径,就解决了(如下图)。(但还是不懂为啥子,有没有大佬给我讲讲)

总结:

如果要执行的类是在某个包内

则你需要在包含这个包的路径下打开cmd(本例中,这个路径就是D:\eclipse\sj\src) ,

然后执行以下2条命令:

1.javac 完整包路径/xxx.java

2.java 完整包路径.xxx


后续补充:又经一番查找,笔者疑问基本解决。

首先观察源码可知,Test类处在包wsy.cn中,所以明确一点,在运行时,要想JVM找到该类,必需提供该类完整限定名称即wsy.cn.Test。

这也就指出了我最初做法的错误,代码示例如下:

//错误,类名不完整
D:\eclipse\sj\src\wsy\cn>java Test

//错误,当前目录结构不存在wsy/cn
D:\eclipse\sj\src\wsy\cn>java wsy.cn.Test

//正确做法,首先切换到正确目录
D:\eclipse\sj\src\wsy\cn>cd ../../
//然后输入完整类名,这样JVM就会在wsy/cn目录下找到Test.class并执行
D:\eclipse\sj\src>java wsy.cn.Test -version
//最终结果
v 1.0

总结:

1.检查你的类名是否完整,如果类处在某个包内,那么完整类名应该如下:

packagename.packagename2.ClassName

2.检查Java命令执行时所处的目录判断JVM是否能在该目录下找到packagename/packagename2,从而找到要执行的类。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值