Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中定义main(String[]args),而不出现警告和错误?_Java_Eclipse_Warnings_Main - Fatal编程技术网

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

如何在Java中定义main(String[]args),而不出现警告和错误?,java,eclipse,warnings,main,Java,Eclipse,Warnings,Main,当我在Eclipse项目的默认包中创建一个新的main.java文件时,它会生成一个main方法,如下所示: public static void main(String[] args) { } public main(String[] args) { } 这会立即引发警告,提示此方法具有构造函数名称。建议的修复方法是删除无效项: public static main(String[] args) { } 现在,我得到的不是警告,而是一个错误:main类型中构造函数的非法修饰符;仅允许使用

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

public static void main(String[] args)
{
}
public main(String[] args)
{
}
这会立即引发警告,提示此方法具有构造函数名称。建议的修复方法是删除
无效项

public static main(String[] args)
{
}
现在,我得到的不是警告,而是一个错误:
main类型中构造函数的非法修饰符;仅允许使用公共、受保护和私有
。如果我删除
静态
,我的代码现在看起来像:

public static void main(String[] args)
{
}
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#出身。另外,这可能是一个重复的问题,但我找不到。

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


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

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

并非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!");
    }
}

或者更好的方法是更改类名。

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


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

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

您的类是否也被称为
Main
?您不应该使用
Main
之类的关键字作为类的名称。Main不是关键字。这只是一个惯例