有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

eclipse如何在Java中定义main(String[]args)而不出现警告和错误?

当我创建一个新的主节点时。java文件在我的Eclipse项目的默认包中,它生成一个main方法,如下所示:

public static void main(String[] args)
{
}

这立即引发了一个警告,上面写着This method has a constructor name。建议的修复方法是删除void

public static main(String[] args)
{
}

现在,我得到的不是警告,而是一个错误:Illegal modifier for the constructor in type main; only public, protected & private are permitted。如果我删除static,我的代码现在看起来像:

public main(String[] args)
{
}

这一次,我仍然得到一个错误,但另一个错误是:

Error: Main method not found in class main, please define the main method as:
    public static void main(String[] args)

啊!但这让我回到了起点。我如何定义main方法,这样就不会出现任何错误或警告

我使用的是EclipseJuno服务版本2和JavaSE-1.7。请注意,我对Java非常陌生;我是C#出身。此外,这可能是一个重复的问题,但我找不到


共 (4) 个答案

  1. # 1 楼答案

    如果将文件命名为main.java,则类也必须命名为main,这违反了标准(类以大写字母开头),但也有可能。在类中,与该类同名的方法被视为构造函数。因此,为了解决您的问题并符合标准,请将您的类和文件重命名为Main,并使用大写字母“M”

  2. # 2 楼答案

    在java中,类名和文件名必须匹配。如果你有一个名为main的文件。java,那么类名也必须是Main,在这种情况下,构造函数方法将被命名为Main,所以不能有Main方法

    将文件和类名更改为main以外的其他名称

  3. # 3 楼答案

    将类的名称从main更改为Main或其他名称。此外,在JavaBean API specification之后,您的类必须以大写字母大写

    并非100%与问题相关,但您也不应使用Java JDK类的名称创建类,例如String

    public class String {
        public static void main(String[] args) {
            System.out.println("Try to execute this program!");
        }
    }
    

    这不仅会给编译器/JVM带来问题,还会给未来的读者带来问题(请记住,你也是自己代码的未来读者)

    注意:要修复上面的代码,只需使用java.lang.String类的全名来引用它:

    public class String {
        public static void main(java.lang.String[] args) {
            System.out.println("Try to execute this program!");
        }
    }
    

    或者更好的是,更改类的名称

  4. # 4 楼答案

    不要叫你的班级main,而是Main

    一般来说,坚持Java编码标准:以大写(Main而不是main)开头类名,这样就不会遇到这些问题