启动程序时出现“找不到主方法”错误? [复制]

2023-12-14

我正在为我的课程学习 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 的构造函数,Java 需要的是一个具有确切签名的 main 方法,如下所示:

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

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

  • void- 不会返回任何值

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

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

当您当前的代码被调用时,JVM 会尝试查找 main 方法,并且由于它不存在于您的代码中,因此它会抛出您收到的异常。

既然您在帖子中提到了初学者,那么值得一提的是,Java 是一个区分大小写的语言 - main and Main在Java中不一样。

也可以看看:入门教程.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

启动程序时出现“找不到主方法”错误? [复制] 的相关文章

随机推荐

  • mysql事务(提交和回滚)

    下面是我用于 MySqlTransaction 的代码 它运行完美 但问题是 因为我使用的是 mysqlcommand 的单个实例 所以我必须在其中使用唯一的参数 这毁了我的查询 有没有其他办法可以做 我尝试在每次查询后处理 cmd 但没有
  • 在 C# 中将参数传递给水晶报表的步骤

    你能告诉我在 C win 形式中向水晶报表 13 传递参数的步骤是什么吗 my code getting and set dataset to report string sql select from dbo Trading Order
  • Javascript:四舍五入 100 [重复]

    这个问题在这里已经有答案了 我正在尝试将数字四舍五入到 100 Example 1340 should become 1400 1301 should become 1400 and 298 should become 300 200 sh
  • 使用 Scope_Identity() 的正确方法/位置

    我的一个字段中有一个名为 deviceID 的自动递增 ID 我想将其传递给 php 中的会话以供稍后使用 并计划使用scope identity 据我了解 这是获取当前主键 ID 的最佳方法 然而 每当我尝试使用它时 我都会收到一条错误消
  • 在键上加入 Spark 数据帧

    我构建了两个数据框 我们如何连接多个 Spark 数据帧 例如 PersonDf ProfileDf与一个共同的列personId作为 键 现在我们如何才能将一个 Dataframe 组合起来PersonDf and ProfileDf 使
  • Chrome 全屏 API

    根据本文Google Chrome 15 具有全屏 JavaScript API 我试图让它发挥作用但失败了 我也找过官方文档无果 全屏 JavaScript API 是什么样的 该API仅在用户交互期间起作用 因此不能被恶意使用 尝试以下
  • 如何编写 C# 函数以接受可变数量的参数?

    我有一个 C 方法 我想用它来更新一些数据 该方法可以传递一个字符串 一个双精度数 一个整数 public void Update string ac string pr string fld Int32 intVal null doubl
  • 如何从方法内显示 UIActivityIndi​​catorView 并开始为其设置动画

    我有一个执行耗时操作的方法 例如连续十次调用 NSString alloc initWithContentsOfURL u 我想要一个在方法调用之前处于隐藏状态的 UIActivityIndi catorView 来显示和动画 所以我写 a
  • 刷新 dat.gui 变量

    这是 dat gui 界面中的下拉列表 一旦您单击任何数字 跳转切换器将是您选择的任何数字 我正在尝试根据用户选择的内容替换与其特定号码相关的每个列表Starsystem So solPlanets Ilos Tuchanka Illium
  • SQLException:结果集开始之前

    ResultSet rs rs this orderedProduct select sum unitstoproduce soNo soNo int sum Integer parseInt rs getString 1 当我尝试在 ja
  • Azure webjob 功能有单独的计划吗?

    是否可以为 Azure Web 作业中的各个非触发功能设置单独的计划 我之所以这么问 是因为我有六个单独的任务 我想在一天中的不同时间以不同的时间间隔运行 并且不想为每个任务创建单独的项目 是的 您可以使用TimerTriggerAttri
  • 如果 findFirst() 找到的第一个元素为 null,为什么会抛出 NullPointerException?

    为什么这会抛出一个java lang NullPointerException List
  • 运行时错误和编译器错误有什么区别? [复制]

    这个问题在这里已经有答案了 在我的一张关于多态性的教授幻灯片中 我看到这段代码带有一些注释 discountVariable will produce DiscountSale saleVariable run time error dis
  • 从 pandas 的日期时间列中减去年份

    我有一个日期时间列如下 gt gt gt df ACC DATE head 2 538 2006 04 07 550 2006 04 12 Name ACC DATE dtype datetime64 ns 现在 我想从此列的每一行中减去一
  • 凯拉斯 TPU。编译失败:检测到不支持的操作

    我尝试使用 Google Colab TPU 运行我的 keras UNet 模型 但遇到了这个问题UpSampling2D 有什么解决方案或解决方法吗 要运行的代码 import os import numpy as np import
  • 通知未被忽略 (Android)

    如果单击操作 通知 setAutoCancel true 不起作用 我有一个通知 其中包含一个操作 当我点击通知时 它将从列表中删除 但是 当我单击 操作 时 它成功完成了 操作 即进行呼叫 但当我返回到通知列表时 它仍保留在那里 Alar
  • 如何在 HTTP 重定向上转发标头

    我正在编写一个响应 HTTP 重定向的 Web 应用程序 有没有办法强制客户端将我在响应中包含的标头转发到新网址 请求示例 POST insertion HTTP 1 1 Content Length 9 content 网络应用响应 HT
  • 在 OpenModelica 中模拟闭式液压循环

    我想对一个封闭的液压循环进行建模 正如人们可以在 Modelica 标准库 流体 示例 加热系统中找到的那样 对于供暖系统以及我的 简约 示例 我遇到了同样的问题 系统是超定的 在接下来的讲座中 您可以发现加热系统是一个 坏例子 所以我想这
  • Swift 中集合视图的横向方向

    我的集合视图单元格遇到横向问题 当应用程序处于纵向时 它为我提供每行正确的单元格数量 即 2 但是当我将应用程序旋转到横向时 它每行显示 1 个单元格 这是我得到的屏幕 Portrait Landscape 这是我添加单元格大小的代码 fu
  • 启动程序时出现“找不到主方法”错误? [复制]

    这个问题在这里已经有答案了 我正在为我的课程学习 Java 但我遇到了障碍 我的任务是开发一个简单的命令行程序 为了让事情变得更容易 我提供了以下示例代码进行修改 这样我就不必从头开始 package assignment public c