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

J2SE 入門:命令列編譯執行第一支 Hello World 完整教學

     編輯:Java 相關知識

前言

雖然實務開發皆用 IDE (IntelliJ IDEA、Eclipse、VS Code),但理解 `javac`/`java` 命令列操作是建立扎實 Java 基礎的關鍵。本文以 Windows 為例,完整演示:目錄規劃、源碼撰寫、編譯、執行、類結構、主方法、輸出語句解析。

環境準備

  1. 安裝 JDK (非 JRE),設定 JAVA_HOME、Path 包含 %JAVA_HOME%\bin。
  2. 驗證:java -version、javac -version 輸出版本資訊。

專案目錄規劃

E:\project\how2java\src\HelloWorld.java   ← 源碼
E:\project\how2java\bin\                  ← 編譯輸出 (可選,用 -d 指定)

撰寫第一支程式

// HelloWorld.java
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("hello world");
    }
}

命名規範:類名 PascalCase、檔名與類名完全一致 (含大小寫)、一檔一 public 類。

編譯:javac

E:
cd E:\project\how2java\src
javac HelloWorld.java
  • 成功 → 無輸出,產生 HelloWorld.class (位元組碼)。
  • 失敗 → 顯示錯誤行號與訊息,修正後重新編譯。
  • 常用參數:-d bin 指定輸出目錄、-encoding UTF-8 指定源碼編碼。

執行:java

java HelloWorld
  • 輸入類全名 (不含 .class 副檔名)。
  • 大小寫敏感。
  • 輸出:hello world。

核心概念解析

類

public class HelloWorld {  // public: 可被任意類存取
    // 類體
}
  • Java 程式基本單位,所有代碼必須在類內。
  • public 類只能有一個,檔名必須同名。

主方法

public static void main(String[] args) {
    // 程式進入點
}

標準輸出

System.out.println("hello world");
  • System.out:PrintStream 物件,對應標準輸出流。
  • println:輸出字串並換行;print 不換行。

常見錯誤與排除

修飾符/關鍵字含義
publicJVM 能從外部呼叫
static無需建立實例即可呼叫 (類方法)
void無回傳值
main固定名稱,JVM 搜尋的進入點
String[] args命令列參數陣列

進階:帶參數執行

java HelloWorld arg1 arg2 "arg 3"
→ args[0]="arg1", args[1]="arg2", args[2]="arg 3"

總結

命令列編譯執行是理解 Java 建置本質的最短路徑。掌握 javac/java、類/主方法/輸出語句結構、常見錯誤排查,能在無 IDE 環境 (伺服器、容器、CI/CD) 獨立驗證程式碼,也為學習 Maven/Gradle 打下基礎。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
錯誤現象原因解決
javac: file not found路徑/檔名錯誤cd 到 src 目錄、確認副檔名 .java
class HelloWorld is public, should be declared in a file named HelloWorld.java檔名與類名不符重新命名檔案完全一致 (含大小寫)
Error: Main method not found in class HelloWorld主方法簽名錯誤檢查 public static void main(String[] args)
Error: Could not find or load main class HelloWorld執行時類路徑錯誤cd 到 .class 所在目錄、輸入類名非檔名