2013-04-26 5 views
6

Wenn ich eine neue main.java Datei im Standardpaket in meinem Eclipse-Projekt erstellen, generiert es eine main Methode, die wie folgt aussieht:Wie definiere ich main (String [] args) in Java ohne Warnungen und Fehler zu erhalten?

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

Dies wirft sofort eine Warnung, dass This method has a constructor name sagt. Die vorgeschlagene Lösung ist, entfernen Sie die void:

public static main(String[] args) 
{ 
} 

Jetzt eher als eine Warnung, erhalte ich eine Fehlermeldung: Illegal modifier for the constructor in type main; only public, protected & private are permitted. Wenn ich die static entfernen, jetzt ist mein Code wie folgt aussieht:

public main(String[] args) 
{ 
} 

Diesmal habe ich noch einen Fehler, aber eine andere, der sagt:

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

argggh! Aber das bringt mich direkt dorthin, wo ich angefangen habe. Wie definiere ich die Hauptmethode, damit ich keine Fehler oder Warnungen bekomme?

Ich verwende Eclipse-Juno Service Release 2 und JavaSE-1.7. Bitte beachten Sie, ich bin sehr neu in Java. Ich komme von einem C# Hintergrund. Auch das ist wahrscheinlich eine doppelte Frage, aber ich kann es nicht finden.

+2

heißt deine Klasse auch 'main'? –

+1

Sie sollten keine Schlüsselwörter wie 'main' als Namen Ihrer Klassen verwenden. –

+2

Haupt ist kein Schlüsselwort. es ist nur eine Konvention – tgkprog

Antwort

13

Rufen Sie nicht Ihre Klasse main, aber Main.

Im Allgemeinen bleiben Sie bei den Java-Codierungsstandards: Starten Sie Klassennamen mit einem Großbuchstaben (Main anstelle von main) und Sie werden nicht auf diese Probleme stoßen.

3

Ändern Sie den Namen Ihrer Klasse von main zu Main oder zu etwas anderem. Nach der JavaBean API specification müssen Ihre Klassen in CamelCase mit dem ersten Buchstaben in Großbuchstaben sein.

nicht zu 100% mit Frage bezogen, aber Sie sollten auch nicht schaffen Klassen mit den Namen der Java JDK-Klassen, zum Beispiel String:

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

Dies wird nicht nur Probleme geben/JVM Compiler aber auch für zukünftige Leser (denken Sie daran, dass Sie auch ein zukünftiger Leser Ihres eigenen Codes sind).

Hinweis: Um die obigen Code zu beheben, beziehen sich nur auf java.lang.String Klasse seinen vollständigen Namen verwenden:

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

Oder noch besser, ändern Sie den Namen der Klasse.

1

In Java müssen der Klassenname und der Dateiname übereinstimmen. Wenn Sie eine Datei namens main.java haben, dann muss der Klassenname auch Main sein, und in diesem Fall würde die Konstruktormethode den Namen main haben, so dass Sie keine main-Methode haben könnten.

Ändern Sie Ihren Datei- und Klassennamen in etwas anderes als main.

5

Wenn Sie die Datei main.java benennen, muss die Klasse auch main heißen, was gegen den Standard ist (Klassen beginnen mit einem Großbuchstaben), aber möglich. In einer Klasse wird eine Methode, die genauso benannt ist wie die Klasse, als Konstruktor betrachtet.Also, um dein Problem zu beheben und den Standard anzupassen benenne deine Klasse und die Datei in Main mit einem Großbuchstaben "M"