1

我刚刚开始 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 编辑器和编译器)

4

1 回答 1

3

您的程序是有效的,无论您是从 BlueJ 还是从命令行编译,都将编译成相同的东西。

但是,blueJ 将允许您在类中运行任何静态方法(因此您可以测试您的函数),因为命令行java命令将(仅)寻找main要运行的特殊方法。这个 main 方法用所有命令行参数标记了一个字符串数组,即使您不使用这些命令行参数,您的程序也应该如下所示:

class first
{
    public static void main(String[] args)
    {
        System.out.println("Hello!");
    }
}
于 2011-07-16T15:28:02.660 回答