2012-05-22 3 views
4

Я изучаю Java для своего курса, и я ударил кирпичную стену. Мне было поручено разработать простую программу командной строки. Чтобы упростить ситуацию, мне был предоставлен следующий пример кода, чтобы изменить, поэтому мне не пришлось бы начинать с нуля.Ошибка «Основной метод не найден» при запуске программы?

package assignment; 

public class Main { 
private final static String[] mainMenuOpts = {"Students","Lecturers","Admin","Exit"}; 
private final static String[] studentMenuOpts = {"Add Student","List all Students","Find a Student","Return to Main Menu"}; 
private Menu mainMenu = new Menu("MAIN MENU",mainMenuOpts); 
private Menu studentMenu = new Menu("STUDENT MENU",studentMenuOpts); 
private DataStore data = new DataStore(); 
private java.io.PrintStream out = System.out; 
private ReadKb reader = new ReadKb(); 
/** Creates a new instance of Main */ 
public Main() { 
    run(); 
} 

private void run(){ 
    int ret = mainMenu.display(); 
    while(true){ 
     switch(ret){ 
      case 1: students();break; 
      case 2: lecturers(); break; 
      case 3: admin(); break; 
      case 4: exit(); break; 
     } 
     ret = mainMenu.display(); 
    } 
} 
private void students(){ 
    int ret = studentMenu.display(); 
    while(ret != 4){ 
     switch(ret){ 
      case 1: addStudent();break; 
      case 2: listStudents(); break; 
      case 3: findStudent(); break; 
     } 
     ret = studentMenu.display(); 
    } 
} 
private void lecturers(){ 
    out.println("\nLecturers not yet implemented"); 
} 
private void admin(){ 
    out.println("\nAdmin not yet implemented"); 
} 
//Student methods 
private void addStudent(){ 
    out.println("\n\tAdd New Student"); 
    //prompt for details 
    //add student to the datastore 
    //ask if they want to enter another student - 
    // if so call addStudent again 
    //otherwise the method completes and the studentMenu will display again 

} 
private void listStudents(){ 
    out.println("\n\tStudent Listing"); 
    //list all students from the datastore 
} 
private void findStudent(){ 
    out.println("\n\tFind Student"); 
    out.print("Enter Search String: "); 
    //reasd search text 
    //use datastore method to get list of students that contain the search string 
    //display matching students 

} 
// end Student methods 
private void exit() { 
    data.save(); //call the datastore method that will save to file 
    out.println("\n\nGoodbye :)"); 
    System.exit(0); 
    } 
} 

Я использую NetBeans, и когда я пытаюсь запустить проект, я получаю эту ошибку:

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

Я просто хочу, чтобы получить программу, работающую таким образом, я могу понять код лучше. Я понимаю ошибку, но понятия не имею, где реализовать основной метод в этой стене текста. Я экспериментировал часами, но, очевидно, как новичок, я совершенно бесполезен. Любая помощь будет принята с благодарностью.

+0

So *** где *** «основной» метод? (Кроме того, сначала попробуйте выполнить поиск: - /) –

+0

http://stackoverflow.com/questions/3696351/eclipse-java-no-main-method-found, http://stackoverflow.com/questions/5219306/why-a -java-program-should-have-a-main-method –

+0

Возможный дубликат [Основной метод в java] (http://stackoverflow.com/questions/4446542/main-method-in-java) (Мне нравятся ответы здесь, но см. другие связанные вопросы) –

ответ

6

Правильная подпись main является:

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

Это даже написано в сообщении об ошибке вы публикуемую.

Удалите ; из конструктора:

public Main() { 
    run(); 
} 
+0

Я получаю эту ошибку, добавляя, что: Исключение в потоке «main» java.lang.RuntimeException: Неподдерживаемый исходный код - отсутствует тело метода или объявить реферат \t при назначении. (Main.java:28) \t при назначении.Main.main (Main.java:24) Java Результат: 1 – user1410613

+0

@ user1410613: Пожалуйста, отредактируйте вопрос с кодом, который у вас есть сейчас. – Tudor

+0

@ user1410613: См. Изменение в моем ответе. – Tudor

2

Он ищет метод с этой подписью:

Чтобы запустить свой код, метод main может выглядеть следующим образом:

public static void main(String[] args) 
{ 
    new Main(); 
} 
1

Вам нужно добавить основной метод в ваш основной класс, чтобы JVM знал, с чего начать, а не класс с «основным» именем.

public static void main(String[] args) { 
    new Main(); 
} 
4

Вы должны использовать метод main() в своей программе. Отсюда начинается выполнение программы.

как

public static void main(String args[]) 
{ 
    //This is the starting point of your program. 
} 

Этот метод должен появиться в классе, но это может быть любой класс. На языке Java, когда вы выполняете класс с помощью интерпретатора Java, система выполнения начинается с вызова метода main() класса. Затем метод main() вызывает все другие методы, необходимые для запуска вашего приложения.

Метод main() принимает единственный параметр: массив строк.Этот параметр является механизмом, с помощью которого исполняющая система передает аргументы командной строки приложения

7

Что у вас есть в данный момент это просто конструктор с именем Main, то, что Java нуждается является основным методом с точной подписью как:

  • public - так, что он может быть вызван из-за пределов

  • static - так что нет необходимости для создания экземпляра класса

  • void - не будет возвращать никакого значения

  • args - массив для параметров командной строки, которые можно указать во время выполнения программы

Это точка входа для приложения.

Когда ваш текущий код вызывается, JVM пытается найти основной метод, и, поскольку он не присутствует в вашем коде, он выдает исключение, которое вы получили.

Поскольку вы упомянули новичок в сообщении, его стоит отметить, что Java является случае зависимый язык - main и Main являются не то же самое в Java.

См. Также: The getting started tutorial.

2

main Метод должен существовать для вашего приложения для запуска. Java-приложениям необходимо знать, с чего начать выполнение программы.

Поместите этот метод в класс по вашему выбору, а затем щелкните файл правой кнопкой мыши и выберите «Запустить файл».

public static void main(String[] args) 
{ 
    // your code here 
} 
Смежные вопросы