当前位置: 首页 > 知识库问答 >
问题:

Java 错误:找不到或加载未定义的主类

林铭
2023-03-14

问题如下。我正在为一个名为“myprogramminglab”的在线编程网站做作业。它要求我做以下练习:

设计一个名为 Person 的类,其中包含用于保存人员姓名、地址和电话号码的字段(全部为字符串)。编写初始化所有这些值的构造函数,以及每个字段的赋值函数和访问器方法。

接下来,设计一个名为Customer的类,它继承自Person类。Customer类应该有一个用于客户编号的字符串字段和一个指示客户是否希望在邮件列表中的布尔字段。编写一个构造函数来初始化这些值,并为类的字段编写适当的mutator和accessor方法。

在一个程序中演示Customer类,该程序提示用户输入客户的姓名、地址、电话号码和客户编号,然后询问用户客户是否希望接收邮件。使用此信息创建一个客户对象,然后打印其信息。

将所有类放在同一个文件中。为此,请勿将其声明为公开。

相反,只需写下:

class  Person { ... }
class  Customer { ... }

然而,我首先在Eclipse中编写了这个程序。我将每个类放在一个单独的文件中,就像您通常所做的那样。之后,我把每节课都搬到了我应该上传的网站上。根据问题,我删除了“public”关键字,以便能够上传。当我这样做的时候,它不会给我任何结果。就像它甚至都不运行程序一样。它可以编译,但什么也不做。我检查了一个在线java编译器,提示如下:

错误:无法找到或加载未定义的主类

可能是什么错误,我应该如何修复它?

这是我的代码:

import java.util.Scanner;
class Person {

    private String name;
    private String address;
    private String number;

    public Person(String name, String address, String number) {
        super();
        this.name = name;
        this.address = address;
        this.number = number;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

}


class Customer extends Person {

    private String num;
    private boolean wants;

        // TODO Auto-generated constructor stub
    public Customer(String name, String address, String number, String num, boolean wants) {
        super(name, address, number);
        this.num = num;
        this.wants = wants;
    }

    public String getNum() {
        return num;
    }

    public void setNum(String num) {
        this.num = num;
    }

    public boolean isWants() {
        return wants;
    }

    public void setWants(boolean wants) {
        this.wants = wants;
    }

}


class demo {

    public static void main(String[] args) {

        String name, address, number;
        String num;
        String decide;
        boolean wants;

        Scanner get = new Scanner(System.in);

        System.out.println("Enter name of customer: ");
        name = get.nextLine();
        System.out.println("Enter address of customer: ");
        address = get.nextLine();
        System.out.println("Enter phone number of customer: ");
        number = get.nextLine();
        System.out.println("Enter customer number: ");
        num = get.nextLine();
        System.out.println("Enter yes/no -- does the customer want to recieve·mail?: ");
        decide = get.nextLine();
        if (decide.equals("yes"))
            wants = true;
        else
            wants = false;

        Customer one = new Customer(name, address, number, num, wants);
        System.out.println("Customer: ");
        System.out.println("Name: " + one.getName());
        System.out.println("Address: " + one.getAddress());
        System.out.println("Phone Number: " + one.getNumber());
        System.out.println("Receive Mail?: " + one.isWants());
    }
}

共有2个答案

欧阳哲
2023-03-14

想象一下你的每个类都有一个main函数,在线编译器应该如何知道哪个是切入点?

松增
2023-03-14

您需要有一个类public,其中包含public静态main方法(在您的情况下是demo)。文件名应该与公共类相同(在您的情况下是demo.java)。其他类可以这样保留它们(它们实际上具有包默认访问权限)。

正如其他人也指出的那样,您最好遵循命名约定将类名也更改为 Demo。

 类似资料:
  • 问题内容: 我在编译和运行Java代码时遇到麻烦,目的是允许我将Java与模拟建模包Vensim的共享对象接口。 以下代码编译没有错误: 但是,当我尝试运行以下命令时: 我收到以下错误:“错误:找不到或加载主类SpatialModel”。我的SpatialModel.java代码确实包含一个“主要”方法(如下),所以我不确定是什么问题-有人可以帮我吗?谢谢。 问题答案: 你必须确保将文件的位置添加

  • 问题内容: 我在编译和运行Java代码时遇到了麻烦,该代码旨在允许我将Java与模拟建模包Vensim的共享对象接口。 以下代码编译没有错误: 但是,当我尝试运行以下命令时: 我收到以下错误:“错误:找不到或加载主类SpatialModel”。我的SpatialModel.java代码确实包含一个“主要”方法(如下),所以我不确定是什么问题- 有人可以帮我吗?谢谢。 问题答案: 您必须确保将文件的

  • 我一直在搜索这一点,但没有任何帮助,我试图运行的主要类,但不断得到一个错误。我负责这个 我的主文件位于中 我尝试了多个命令,但一无所获。 我想运行位于中的主类,但总是出现此错误,请提供帮助吗?

  • 我有一个名为TestInventory.java的类,其他类在默认包中,都在src文件夹中。然而,当我运行它时,我得到: 错误:找不到或加载主类

  • 我基本上遵循下一个教程:https://picocli.info/#_running_the_application 我正在尝试使用下一个命令运行我的应用程序: 我所在的目录中有2个JAR,分别是picocli和bashTool,但我收到了下一条错误消息: 这是y目录的样子: 有什么想法吗?