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 的文件中聲明.java這些類位于名為“emailapp”的包中。
2 回答

蕭十郎
TA貢獻1815條經驗 獲得超13個贊
好吧,您需要完全按照此錯誤告訴您的方式進行操作。在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"
注意:如果路徑中有空格,請確保將路徑放在引號內。

qq_花開花謝_0
TA貢獻1835條經驗 獲得超7個贊
該錯誤表示您的文件名和類名具有不同的名稱。您應該為每個類保留一個單獨的文件,并確保每個文件都與其包含的類具有相同的名稱。
例如:文件:EmailApp.java包含:public class EmailApp { ... }
文件:電子郵件.java包含:public class Email { ... }
現在,當您使用main方法編譯類時,它還將編譯另一個類 - 假設EmailApp調用Email。main 方法應如下所示:
public static void main(String... args) { // }
因此,您只編譯EmailApp.java就像您所做的那樣。
無論如何,請提供您正在處理的文件。
添加回答
舉報
0/150
提交
取消