Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.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 &引用;找不到主方法“;启动程序时出错?_Java - Fatal编程技术网

Java &引用;找不到主方法“;启动程序时出错?

Java &引用;找不到主方法“;启动程序时出错?,java,Java,我正在为我的课程学习Java,我遇到了困难。我的任务是开发一个简单的命令行程序。为了让事情变得更简单,我得到了以下要修改的示例代码,这样我就不必从头开始了 package assignment; public class Main { private final static String[] mainMenuOpts = {"Students","Lecturers","Admin","Exit"}; private final static String[] studentMenuOpts

我正在为我的课程学习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)

我只是想让程序运行起来,这样我就能更好地理解代码。我理解这个错误,但不知道在这堵文本墙中在哪里实现主要方法。我已经做了几个小时的实验,但作为一个新手,我显然毫无用处。非常感谢您的帮助。

main的正确签名是:

public static void main(String[] args) {
   new Main();
}
它甚至写在你发布的错误消息中

删除
来自构造函数:

public Main() {
    run();
}

它正在寻找具有此签名的方法:

public static void main(String[] args)
要运行代码,
main
方法可以如下所示:

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

正如非常有用的错误消息所述,您需要一个main方法

您需要在主类中添加一个main方法,以便
JVM
知道从何处开始,而不是使用“main”名称的类

您必须在程序中使用main()方法。 从这里开始执行程序

此方法必须出现在类中,但可以是任何类。 在Java语言中,当您使用Java解释器执行一个类时,运行时系统通过调用该类的main()方法启动。然后,main()方法调用运行应用程序所需的所有其他方法


main()方法接受一个参数:字符串数组。此参数是运行时系统将命令行参数传递给应用程序的机制

您当前拥有的只是一个名为Main的构造函数,Java需要的是一个具有精确签名的Main方法,如下所示:

public static void main(String[] args)
  • public
    -以便可以从外部调用它

  • 静态
    -这样就不需要创建类的实例

  • void
    -不返回任何值

  • args
    -可在运行程序时指定的命令行参数数组

这是您的应用程序的入口点

当调用当前代码时,JVM试图定位main方法,由于它不存在于代码中,所以它会抛出您收到的异常

既然您在帖子中提到了初学者,那么值得一提的是Java是一种区分大小写的语言-
main
,而
main
在Java中并不相同


另请参见:.

main
方法应该存在,应用程序才能运行。Java应用程序需要它知道从哪里开始执行程序

将该方法放入您选择的类中,然后右键单击文件并选择“运行文件”

 public static void main(String[] args)
 {
     // your code here
 }

那么,“主要”方法在哪里呢?(另外,首先尝试搜索:-/),我真的不知道编辑出了什么问题……我搜索了。我明白错误在说什么。我添加了一个main方法,但不知道如何通过它调用run()方法,而不会出现其他错误。我几天前才开始学习(字面意思),所以这对我来说是全新的。无论如何,问题在Tudor的帮助下得到了解决。我在添加以下内容时得到了这个错误:线程“main”java.lang.RuntimeException中的异常:不可编译的源代码-缺少方法体,或者在assign.main处声明抽象。(main.java:28)在assign.main.main(main.java:24)Java结果:1@user1410613:请用您现在拥有的代码编辑问题。@user1410613:请查看对我的答案的编辑。它正在工作。谢谢你,伙计。@user1410613:如果答案解决了你的问题,别忘了接受它。:)
public static void main(String[] args)
 public static void main(String[] args)
 {
     // your code here
 }