【问题标题】:I am trying to overload the main method but I am getting following error in cmd我正在尝试重载主要方法,但在 cmd 中出现以下错误
【发布时间】:2015-08-07 04:02:12
【问题描述】:

文件名:mainoverloading.java

错误:无法找到或加载主类 mainoverloading

class simple{
    public static void main(int a)
    {
        System.out.println(a);
    }

    public static void main(String args[])
    {
        System.out.println("Hi");
        main(10);   
    }

}

【问题讨论】:

    标签: java overloading main


    【解决方案1】:

    你的班级被命名为simple(不是mainoverloading)。重命名类(或将文件“mainoverloading.java”移动到“simple.java”)。

    【讨论】:

    • 谢谢这工作。但是,即使我将其声明为 class simple { } 而不是 public class simple{ },是否总是需要将类名与文件名相同
    • 一个类可以有一个内部类,但外部类必须遵循该命名约定。至少要使用我知道的任何 java 编译器。
    • @ElliottFrisch 当类不公开时,Java 是否允许我们使用任何名称作为文件名?
    • @tnadeV java 编译器必须找到类(及其依赖项)来编译它。如果您偏离命名约定,则需要手动解决这些依赖关系。这是可能的(通常),但本质上比使用默认规则更复杂(并且不建议使用main 方法)。另见JLS-12.1. JVM Startup
    【解决方案2】:

    当您使用

    编译上述给定类时
    javac mainoverloading.java 
    

    编译成功并在你的文件夹中生成一个名为simple.class的类文件。

    然后您可以通过键入来运行它 java simple.

    但这实际上不是一个好习惯,正如 Elliott Frisch 所说,将您的类重命名为 simple.java。

    看看 Windows-HelloWorld

    对于 Linux - HelloWorld

    【讨论】:

      【解决方案3】:

      Java 允许我们使用任何名称作为文件名,只有当类不公开时。

      它运行得很好,因为对于 eclipse 主类来说它很简单,它很聪明地识别出 simple.class 将被创建。


      如果您从命令行运行, 为您的代码创建的类文件是 simple.class,因此 JVM 将无法找到 mainoverlading.class

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-14
        相关资源
        最近更新 更多