【问题标题】:Exception in thread "main" java.lang.NoSuchMethodError: main - how can I fix that? [duplicate]线程“main”中的异常 java.lang.NoSuchMethodError: main - 我该如何解决? [复制]
【发布时间】:2011-01-14 14:01:02
【问题描述】:

可能重复:
Causes of 'java.lang.NoSuchMethodError: main Exception in thread “main”'

我正在使用 Eclipse。我删除了所有内容并离开了主要功能 - 没有任何效果。有人可以帮忙吗?

package good;

import java.io.*;

public class FiFo {     
    public static void main()
    {
        System.out.println("here");
    }
}    

class FileReader {
    public FileReader(String fileName)
    {
        try {
            FileInputStream fstream = new FileInputStream(fileName);
            BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
        }
        catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
}

【问题讨论】:

标签: java


【解决方案1】:

主函数应该有这样的签名:

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

您错过了 String 数组。当您运行程序时,它希望找到a method with this signature,而不是您在示例代码中的空参数列表。

【讨论】:

  • 特别是String[]参数不是可选的。
【解决方案2】:

来自 java 文档:

线程“main”中的异常 java.lang.NoSuchMethodError: main

Java VM 要求该类 你用它执行有一个主要方法 开始执行您的 应用。

所以它可能是错误的主要签名,如第一篇文章所述

【讨论】:

    【解决方案3】:
    import java.util.*;
    import java.io.*;
    import java.lang.*;
    
    public class Run
    {
        static BufferedReader nhap = new BufferedReader(new InputStreamReader(System.in));
    
        public Run()
        {
        }
    
        public static void main(String[] args) throws Exception
        {   
            int chon;
            System.out.println("1. Nhap Sinh Vien");
            System.out.println("2. Nhap Giao Vien");
            System.out.println("=> Moi ban chon 1 hoac 2 de nhap lieu");
            chon = Integer.parseInt(nhap.readLine());
    
            switch (chon)
            {   
                case 1:
                {
                    System.out.print("So luong sinh vien can nhap vao: ");
                    int SoSV = Integer.parseInt(nhap.readLine());
                    System.out.print("=> Test  :  " + SoSV );
                    SinhVien[] SV = new SinhVien[SoSV];
                    int i;
                    for (i = 0; i < SV.length; i++);
                    {
                        System.out.printf("Nhap thong tin Sinh vien thu %d \n ", i + 1);
                        SV[i] = new SinhVien();
                        AddSV(SV[i]);
                    }
                }
                case 2:
                {   
                }
                default: System.out.println("Lua chon cua ban khong co trong danh sach !");
            }   
        }
    
        public static void AddGV(GiaoVien gv) throws Exception
        {
            try
            {
                System.out.println("Nhap ma Giao vien: ");
                int ma = Integer.parseInt(nhap.readLine());
                System.out.print("Nhap ho ten giao vien ");
                gv.setHoten(nhap.readLine());
                System.out.print("Nhap tuoi giao vien");
                int tuoi = Integer.parseInt(nhap.readLine());
                System.out.print("Nhap ten khoa giao vien dang day");
                gv.setTenKhoa(nhap.readLine());
                System.out.print("Nhap chuyen nganh giao vien day");
                gv.setChuyenNganh(nhap.readLine());
                System.out.print("Nhap vao Mon giao vien day");
                gv.setMonDay(nhap.readLine());
            }
            catch(Exception ex)
            {   
                throw new Exception (ex.getMessage());
            }
        }
    
        public static void AddSV(SinhVien sv) throws Exception
        {
            try
            {   
                System.out.println("Nhap ma Sinh vien: ");
                int ma = Integer.parseInt(nhap.readLine());
                System.out.print("Nhap ho ten Sinh vien ");
                sv.setHoten(nhap.readLine());
                System.out.print("Nhap tuoi Sinh vien ");
                int tuoi = Integer.parseInt(nhap.readLine());
                System.out.print("Nhap ten khoa Sinh vien dang hoc");
                sv.setTenKhoa(nhap.readLine());
                System.out.print("Nhap Khoa sinh vien dang hoc");
                sv.setKhoaHoc(nhap.readLine());
                System.out.print("Nhap vao Lop Sinh vien hoc");
                sv.setLop(nhap.readLine());
            }
            catch(Exception ex)
            {
                throw new Exception (ex.getMessage());
            }
        }
    
        public static void OutPutSV(SinhVien sv) throws Exception
        {
            try
            {
                sv.Tostring();
            }
            catch(Exception ex)
            {   
                throw new Exception(ex.getMessage());
            }
        }
    
        public static void OutPuttGV(GiaoVien gv) throws Exception
        {
            try
            {
                gv.Tostring();
            }
            catch(Exception ex)
            {   
                throw new Exception (ex.getMessage());
            }
        }    
    }
    

    【讨论】:

      【解决方案4】:
       public static void main()  // not correct signature for main
      

      【讨论】:

      • 4天前已经回答了:)
      【解决方案5】:

      如果您使用的是 Eclipse,则需要确保您“运行为”“Java 应用程序”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-19
        • 1970-01-01
        • 2011-02-20
        • 1970-01-01
        • 1970-01-01
        • 2015-02-10
        • 1970-01-01
        相关资源
        最近更新 更多