找不到或无法加载主类的原因之一

先声明,这只是找不到或无法加载主类的原因之一,你在这里并不一定能够找到方法。这个问题可能是有些初学者会犯的,就是我的程序很简单应该没有问题,我的环境变量也配置好了,编译也没有问题,怎么总是在运行的时候出这个问题呢?

这很有可能是你的程序中有包声明,即有package语句,将程序放在了包中。但是你编译的时候没有生成包目录或者运行的时候没有指定包,就会出现这个问题。下面以一个例子说明这个问题。

下面是一个程序,很简单:

package Lee; 

public class Hello 
{
    public static void main(String[] args) 
    {
        System.out.println("Hello World!");
    }
}

打开cmd,转到放程序的目录比如说是dir\下面(该程序的路径为dir\Hello.java),然后执行

javac Hello.java

没有问题,在dir\下面生成了 Hello.class文件(dir\Hello.class)
然后执行这个文件

java Hello

就会蹦出这个错误提示

错误: 找不到或无法加载主类 Hello

这就是因为,在上面的程序中有包声明的语句,将该程序放在了一个叫Lee的包中,而在编译的时候没有生成相应的包层级。应该用下面的方法编译

javac -d . Hello.java

-d .是指明生成的目录为当前目录,也即dir\。运行这个命名后就会在dir\下面生成一个叫Lee的文件夹,文件夹下有一个叫Hello.class的文件(dir\Lee\Hello.class)。

运行该文件时,不要到dir\Lee\下面运行,就在dir\下面运行

java Lee.Hello

现在你应该能够看都程序正确的运行结果了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值