如何在cmd中运行几个类文件?

时间:2019-03-17 18:22:07

标签: java class cmd compilation package

package emailapp;
import java.util.Scanner;

public class Email {

    private String firstName;
    private String lastName;
    private String department;
    private String password;
    private String alternativeEmail;
    private int mailboxCapacity = 200;
    private String email;
    private String companyName = "HomeCo.com";

    public Email(String firstName, String lastName){
        this.firstName = firstName;
        this.lastName = lastName;
        //System.out.println("Email Created!:" + this.firstName + " " + this.lastName + " ");

    this.department = setDepartment();
    //System.out.println("Your Email Department: "+ this.department);
    this.password = setPassword(8);
    //System.out.println("Your Password Is: "+ this.password);
    email = firstName.toLowerCase() + "." +  lastName.toLowerCase() + "@" + department + "." + companyName;
    //System.out.println("Your Email Address Is: "+ email);
    }



    private String setDepartment() {

        System.out.print("CHOICES:\n1.Sales\n2.Development\n3.Accounting\n4.None Of The Above\n");
        Scanner Input = new Scanner(System.in);
        int choice = Input.nextInt();

        if(choice == 1) {
            return "sales";
        }
        else if(choice == 2) {
            return "dev";
        }
        else if(choice == 3){
            return "acct";
        }
        else {
            return " ";
        }
    }

package emailapp;
public class EmailApp {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Email em1 = new Email("Rojin","Ebrahimi");
        System.out.println(em1.showInfo());
    }

}

我写了一个使用2个类的微型电子邮件生成应用程序: 一个叫做“ Email”的类,另一个叫做“ EmailApp”的类(包括主要的类)。它是用Eclipse编写的,我试图在cmd中运行我的代码,但是我对如何首先编译它感到困惑。

当我键入:

javac EmailApp.java,

它一直告诉我:

  

Email类是公共的,应在名为Email.java的文件中声明

这些类位于名为“ emailapp”的程序包中。

2 个答案:

答案 0 :(得分:0)

该错误表示您的文件名和类名具有不同的名称。 您应该为每个类保留一个单独的文件,并确保每个文件都具有与其包含的类相同的名称。

例如: 文件:EmailApp.java 包含:public class EmailApp { ... }

文件:Email.java 包含:public class Email { ... }

现在,当您使用main方法编译该类时,它还将编译另一个类-假设EmailApp调用Email。 主要方法应如下所示:

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

因此,您只需像以前那样编译EmailApp.java。

无论如何,请提供您正在处理的文件。

答案 1 :(得分:0)

好吧,您需要准确地执行此错误告诉您的操作。在Java中,每个公共类(内部类除外)都需要拥有自己的文件。

您可能已经将两个类的代码放在一个名为EmailApp.java的文件中。但是您需要将Email类的所有代码放在一个名为Email.java的单独文件中。

这样做之后,您可以使用以下命令在命令行中编译两个文件:

javac EmailApp.java
javac Email.java

然后运行您将主功能放入的类(可能是EmailApp.java文件:

java EmailApp

评论后更新:
您确定cmd在正确的目录中吗?在您的文件资源管理器中,搜索源文件所在的目录。您应该能够从文件资源管理器中的地址栏中复制路径。在cmd中,您应该使用cd命令更改目录:

cd "put the path to the right directory in here"

注意:如果路径中有空格,请确保将路径放在引号中。