2013-04-26 6 views
6

Kiedy utworzyć nowy plik main.java w domyślnym pakietem w moim projekcie Eclipse, generuje main metodę, która wygląda tak:Jak zdefiniować main (String [] args) w Javie bez ostrzeżeń i błędów?

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

Ten natychmiast podnosi się ostrzeżenie, które mówi This method has a constructor name. Proponowana poprawka jest usunięcie void:

public static main(String[] args) 
{ 
} 

Teraz zamiast ostrzeżenie, pojawia się błąd: Illegal modifier for the constructor in type main; only public, protected & private are permitted. Jeśli usunąć static, mój kod wygląda teraz tak:

public main(String[] args) 
{ 
} 

Tym razem, nadal pojawia się błąd, ale inny, który mówi:

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

Argggh! Ale to zabiera mnie z powrotem tam, gdzie zacząłem. Jak zdefiniować główną metodę, aby uniknąć błędów i ostrzeżeń?

Używam Eclipse Juno Service Release 2 i JavaSE-1.7. Proszę zauważyć, jestem bardzo nowy w Javie; Pochodzę z tła C#. Jest to prawdopodobnie duplikat pytania, ale nie mogę go znaleźć.

+2

to także twoja klasa "main"? –

+1

Nie powinieneś używać słów kluczowych takich jak "main" jako nazw swoich klas. –

+2

main nie jest słowem kluczowym. to tylko konwencja – tgkprog

Odpowiedz

13

Nie nazywaj klasa main, ale Main.

Ogólnie przestrzegaj standardów kodowania Java: zacznij od nazwy klasy z kapitałem (Main zamiast main) i nie napotkasz na te problemy.

3

Zmień nazwę swojej klasy z main na Main lub na coś innego. Ponadto, po JavaBean API specification, twoje zajęcia muszą być w CamelCase z pierwszą literą w stolicy.

Nie 100% związane z pytaniem, ale należy również nie stwarzają zajęcia z nazwami klas Java JDK, na przykład String:

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

To nie tylko daje problemy kompilator/JVM ale także dla przyszłych czytelników (pamiętaj, że jesteś także przyszłym czytelnikiem swojego własnego kodu).

Uwaga: Aby rozwiązać powyższy kod, wystarczy odwołać się do java.lang.String klasie używając jego imię i nazwisko:

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

Albo jeszcze lepiej, zmienić nazwę klasy.

1

w Javie, nazwa klasy i nazwa pliku musi być taka sama. Jeśli masz plik o nazwie main.java, następnie nazwa klasy musi być zbyt Główny, aw takim przypadku metoda konstruktora będzie nazwany głównym, więc nie może mieć główne metody.

Zmień swój plik i nazwę klasy do czegoś innego niż główny.

5

Jeśli nazwiesz plik , klasa również musi być nazwana main, co jest sprzeczne ze standardem (klasy zaczynają się od dużej litery), ale możliwe. W klasie metoda o tej samej nazwie jest uważana za konstruktor.Aby rozwiązać problem i dopasować standard, zmień nazwę swojej klasy i pliku na Main ze znaczącym "M"