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

标签 java command-line bluej

我刚刚重新开始使用 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/

相关文章:

java - 允许 java 信任库接受所有 SSL 证书?

java - 通过 JDBC 连接到数据库

Linux命令行printf工具,允许在多处使用相同的参数

java - 正在更新 Blue J 上的数据库吗?

java - 使用 filewriter 将哈希集写入 txt

java - 如何在单词之间添加分隔符?

java - gradle:找不到@Entity符号

java - 通过批处理文件运行时会跳过测试,但在 eclipse ide 上执行

java - 为什么这个 javac : File Not Found error?

scripting - Powershell 中的 && 等效项