首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 入門必讀:Hello World 常見錯誤與包機制完整指南

     編輯:Java 相關知識

最簡 Hello World (無包)

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

保存為 E:\javasrc\HelloWorld.java:

E:\javasrc> javac HelloWorld.java
E:\javasrc> java HelloWorld
Hello World!

初學者高頻錯誤

錯誤 1:運行帶 .class 後綴

E:\javasrc> java HelloWorld.class
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/class

原因:JVM 認為運行 HelloWorld 包下的 class 類,尋找 HelloWorld.class.class。class 是關鍵字不能作類名,必然失敗。

正確:java HelloWorld (類全限定名,無後綴)

錯誤 2:大小寫不敏感編譯 vs 運行時敏感

Windows 下 javac helloworld.java 可編譯通過,產生 HelloWorld.class (保持源文件類名大小寫)。但運行:

E:\javasrc> java helloworld
Exception in thread "main" java.lang.NoClassDefFoundError: helloworld (wrong name: HelloWorld)

鐵律:java 命令區分大小寫,必須與類聲明完全一致。

帶包的 Hello World

package org.javaresearch;

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

編譯方式一:直接編譯 + 手動建目錄

E:\javasrc> javac HelloWorld.java
→ 當前目錄生成 HelloWorld.class
E:\javasrc> java HelloWorld
Exception: wrong name: org/javaresearch/HelloWorld

需按包結構建目錄並移動 class 文件:

mkdir E:\javasrc\org\javaresearch
move HelloWorld.class E:\javasrc\org\javaresearch\
E:\javasrc> java org.javaresearch.HelloWorld
Hello World!

注意:不能用 java org\javaresearch\HelloWorld 或 java orgjavaresearchHelloWorld,必須用點號分隔包名。

編譯方式二:-d 選項自動生成目錄結構 (推薦)

E:\javasrc> javac -d . HelloWorld.java
→ 當前目錄自動生成 org\javaresearch\HelloWorld.class
E:\javasrc> java org.javaresearch.HelloWorld
Hello World!

指定輸出根目錄:

mkdir E:\javaclasses
E:\javasrc> javac -d E:\javaclasses HelloWorld.java
→ E:\javaclasses\org\javaresearch\HelloWorld.class
E:\javaclasses> java org.javaresearch.HelloWorld
Hello World!

若有其他依賴類,需在 CLASSPATH 中正確設置。

核心知識點總結

  • javac 編譯源文件,java 運行類 (非文件)
  • 運行命令參數是類全限定名,無 .class,區分大小寫
  • 包機制要求目錄結構與包名完全對應
  • javac -d <dir> 自動創建包目錄並輸出 class,最佳實踐
  • 集中管理 class 文件 (-d 指定目錄) 利於專案構建與部署

掌握這些基礎,能避開 90% 的 Hello World 階段坑,為後續學習打穩地基。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved