使用命令提示符和BlueJ进行编译时的结果不同

时间:2011-07-16 15:22:15

标签: java command-line bluej

我刚刚开始Java ...... 我刚做了一个简单的程序

class first
{
    public static void main()
    {
        System.out.println("Hello!");
    }
}

这在BlueJ中运行得非常好,但是从命令提示符运行时它在运行时会出错。

这是错误 Exception in thread "main" java.lang.NoSuchMethodError: main

这是因为我没有在String args[]参数列表中提供main

直到现在,我曾经下意识地给它。我知道字符串数组在运行时包含所有参数值,但为什么它在BlueJ中运行?

(BlueJ是一个学生友好的Java编辑器和编译器)

1 个答案:

答案 0 :(得分:3)

您的程序是有效的,无论您是从BlueJ还是从命令行编译,它都会编译为同一个程序。

但是,blueJ将允许您在类中运行任何静态方法(因此您可以测试您的函数),因为命令行java命令将(仅)查找特殊的main方法跑。这个main方法将String数组与所有命令行参数进行对比,即使您不使用这些命令行参数,您的程序应该如下所示:

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