簡體   English   中英

錯誤:找不到或加載主類Hello2

[英]Error: Could not find or load main class Hello2

我正在學習Java並正在學習一本書。

我有一個通過文本編輯器編寫的程序,並通過cmd運行命令。

我已經通過javac編譯了1個程序,並且通過java沒問題地執行了。 (您好)然后,我對其進行了修改,以向該類添加名為文件Hello2.java的注釋。 我沒有問題地對其進行編譯,但是在執行時,我收到此錯誤:無法找到或加載主類Hello2。

我對環境變量設置了正確的類路徑和路徑。

有想法嗎?

更新

你好

  public class Hello {
      public static void main(String[] args) {
          System.out.println("Hello, world!");
      }
  }

Hello2.java

//Filename Hello2.java
//Written by 
//Written on 

public class Hello2 {
    public static void main(String[] args) {
         System.out.println("Hello, world!");
    }
}

/*This class demonstrates the use of the println() method to print the message Hello, world! */

我找到了解決我問題的方法。 我知道這不是代碼問題。 但是我所做的是我從系統變量中刪除了CLASSPATH,現在一切都正常了……至少目前為止。

非常感謝大家的投入,非常感謝!

更改文件名時,也必須更改公共類的名稱。 因此,如果您的文件名為Hello2.java ,則該類應稱為Hello2而不是Hello

您必須確保將.class文件的位置添加到類路徑中。 因此,如果它在當前文件夾中,請添加. 到你的classpath。 請注意,windows類路徑分隔符是分號,即;

如果您的類文件以Hello2程序名稱d:\\sample保存在以下目錄中

  1. java -cp d:\\sample Hello2
  2. java -cp . Hello2

我相信您有如下的Hello2.java文件。

class Hello {
     public static void main (String args[]) {
     System.out.println("Hello");
     }
}

更改為

class Hello2 {
     public static void main (String args[]) {
     System.out.println("Hello");
     }
}

更改是class Hello2而不是class Hello

注意 :您應該始終使用類名和文件名SAME。

祝好運!!!

更新1

您在執行以下步驟嗎?

  1. 寫了Hello.java
  2. 通過javac Hello.java編譯
  3. 由Java Hello運行
  4. 將Hello.java重命名為Hello2.java
  5. 重命名類名,即class Helloclass Hello2
  6. javac Hello2.java
  7. Java Hello2

我相信您缺少步驟6,並在步驟5之后執行步驟7。請確認。

您確定設置正確的類路徑嗎? 為什么不嘗試在.class文件 Hello 的目錄中運行java -cp呢? 如果這樣不起作用,請上傳完整的堆棧跟蹤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM