我刚刚重新开始使用 Java ...。 我只是做了一个简单的程序
class first
{
public static void main()
{
System.out.println("Hello!");
}
}
这在 BlueJ 中运行得很好,但在从命令提示符运行时会在运行时出错。
这是错误
线程“main”中的异常 java.lang.NoSuchMethodError: main
是因为我没有在main
参数列表中给String args[]
直到现在,我都是下意识地给它。我知道字符串数组在运行时包含所有参数值,但为什么它在 BlueJ 中运行?
(BlueJ是一款对学生友好的Java编辑器和编译器)
最佳答案
您的程序是有效的,并且无论您是从 BlueJ 还是从命令行编译,都会编译成相同的东西。
但是,blueJ 将允许您在类中运行任何静态方法(以便您可以测试您的函数),因为命令行 java
命令将(仅)查找特殊的 main
方法运行。这个 main 方法使用所有命令行参数标记一个字符串数组,即使您不使用这些命令行参数,您的程序也应该如下所示:
class first
{
public static void main(String[] args)
{
System.out.println("Hello!");
}
}
关于java - 使用命令提示符和 BlueJ 编译时的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6718308/