关闭

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

标签: java找不到无法加载主类
370人阅读 评论(0) 收藏 举报
分类:

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

这很有可能是你的程序中有包声明,即有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

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:243358次
    • 积分:3246
    • 等级:
    • 排名:第10543名
    • 原创:90篇
    • 转载:7篇
    • 译文:1篇
    • 评论:32条
    最新评论