java.lang.NoSuchMethodException: 主要 [class [Ljava.lang.String;]

java.lang.NoSuchMethodException: main [class [Ljava.lang.String;]

当我仔细按照给我的模块进行操作时,我不知道下面的代码有什么问题。请教我为什么会出现该错误。我完全是 java 的新手,而我的教授没有回复我。

  public class Member{
  String name;
  int age;
  String number;
  String address;
  int salary;

  public void printSalary(){
    System.out.println(salary);
  }

}

class Employee extends Member{
  String specialization;
}

class Manager extends Member{
  String department;
}

class Ans{
  public static void main(String[] args){
    Employee e = new Employee();
    e.name = "Lado";
    e.age = 21;
    e.number = "0919467670";
    e.address = "Tunasan";
    e.salary = 10000;
    e.specialization = "Computer Coding";

    Manager m = new Manager();
    m.name = "Lala";
    m.age = 23;
    m.number = "09216t767";
    m.address = "Tunasan";
    m.salary = 0;
    m.department = "CITS Office";
  }
  

// Remove "public"
 class Member{
  String name;
  int age;
  String number;
  String address;
  int salary;

  public void printSalary(){
    System.out.println(salary);
  }

}

class Employee extends Member{
  String specialization;
}

class Manager extends Member{
  String department;
}

// Add "public", don't forget that the name of this java file must be "Ans.java"
public class Ans{
  public static void main(String[] args){
    Employee e = new Employee();
    e.name = "Lado";
    e.age = 21;
    e.number = "0919467670";
    e.address = "Tunasan";
    e.salary = 10000;
    e.specialization = "Computer Coding";

    Manager m = new Manager();
    m.name = "Lala";
    m.age = 23;
    m.number = "09216t767";
    m.address = "Tunasan";
    m.salary = 0;
    m.department = "CITS Office";
  }

您需要将main 方法放在public class 中,否则将不会被提取。由于每个文件(编译单元)只能有一个 public class,因此您必须使 Member 而不是 public 或将其移动到另一个文件:

class Member{
    String name;
    int age;
    String number;
    String address;
    int salary;

    public void printSalary(){
        System.out.println(salary);
    }

}

class Employee extends Member{
    String specialization;
}

class Manager extends Member{
    String department;
}

public class Ans{
    public static void main(String[] args){
        Employee e = new Employee();
        e.name = "Lado";
        e.age = 21;
        e.number = "0919467670";
        e.address = "Tunasan";
        e.salary = 10000;
        e.specialization = "Computer Coding";

        Manager m = new Manager();
        m.name = "Lala";
        m.age = 23;
        m.number = "09216t767";
        m.address = "Tunasan";
        m.salary = 0;
        m.department = "CITS Office";
   }

}

此外,.java 源文件的名称始终必须与 public class 的名称匹配,因此必须在 Ans.java 中。