我正在为我的课程学习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);
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用NetBeans,当我尝试运行该项目时,我收到此错误:
Error: Main method not found in class assignment.Main, please define the main method as: public static void main(String[] args)
Run Code Online (Sandbox Code Playgroud)
我只想让程序运行,这样我就能更好地理解代码.我理解错误,但不知道在这个文本墙中实现main方法的位置.我一直在试验几个小时,但很明显,作为一个新手,我完全无用.任何帮助将不胜感激.
你现在拥有的只是一个名为Main的构造函数,Java需要的是一个具有精确签名的main方法:
public static void main(String[] args)
Run Code Online (Sandbox Code Playgroud)
public - 这样就可以从外面调用它
static - 这样就不需要创建类的实例了
void - 不会返回任何价值
args - 运行程序时可以指定的命令行参数数组
这是您的应用程序的入口点.
当您调用当前代码时,JVM正在尝试查找main方法,并且由于它不在您的代码中,因此它会抛出您收到的异常.
既然您在帖子中提到了初学者,那么值得一提的是Java是一种区分大小写的语言 - main并且Main在Java中并不相同.
另请参阅:入门教程.
正确的签名main是:
public static void main(String[] args) {
new Main();
}
Run Code Online (Sandbox Code Playgroud)
它甚至写在您发布的错误消息中.
;从构造函数中删除:
public Main() {
run();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26062 次 |
| 最近记录: |