Java 從 1991 年 Oak 語言起步,歷經更名、版本演進,形成成熟生態。本文系統梳理 Java 三大技術架構、JDK/JRE 關係、環境變數配置、編譯執行流程,為初學者建立完整知識骨架。
| 架構 | 全稱 | 定位 | 核心領域 |
|---|---|---|---|
| JavaEE | Java Platform Enterprise Edition | 企業級應用 | Web 開發、分散式系統、微服務 |
| JavaSE | Java Platform Standard Edition | 標準版/桌面應用 | 核心 API、基礎類庫、另外兩者基礎 |
| JavaME | Java Platform Micro Edition | 嵌入式/移動設備 | 手機程式、消費性電子、IoT 設備 |
學習路徑建議:JavaSE → JavaEE → 專項方向(Spring、微服務、大數據等)。
JDK (Java Development Kit) = 開發工具 + JRE
│
├─ javac, java, javadoc, jdb, jar 等開發工具
│
└─ JRE (Java Runtime Environment) = 類庫 + JVM
│
├─ 核心類庫 (rt.jar 等)
│
└─ JVM (Java Virtual Machine)
├─ 類載入器
├─ 執行引擎 (解譯器 + JIT 編譯器)
├─ 運行時資料區 (堆、棧、方法區等)
└─ 本地方法介面
# JDK
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_xxx
PATH=%JAVA_HOME%\bin;%PATH%
CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
# 注意:CLASSPATH 以 "." 開頭代表當前目錄
set PATH=%PATH%;C:\Program Files\Java\jdk1.8.0_xxx\bin
set CLASSPATH=.;C:\lib;D:\project\lib
| 情況 | 行為 |
|---|---|
| 未設定 CLASSPATH | JVM 僅在當前目錄尋找類別 |
設定 CLASSPATH,結尾有分號 ; | 指定目錄找不到 → 回退當前目錄再找一次 |
| 設定 CLASSPATH,結尾無分號 | 指定目錄找不到 → 直接報錯(推薦,利於除錯) |
| 命令 | 階段 | 核心工作 | 輸入 | 輸出 |
|---|---|---|---|---|
javac | 編譯 | 啟動編譯器,語法檢查、生成位元碼 | .java 原始檔 | .class 位元碼檔 |
java | 執行 | 啟動 JVM、載入類庫、執行 main 方法 | .class 位元碼檔 | 程式執行結果 |
public class HelloWorld {
// 必須存在標準 main 方法作為啟動入口
public static void main(String[] args) {
System.out.println("Hello Java!");
}
}
編譯:javac HelloWorld.java → 執行:java HelloWorld(不含 .class 副檔名)。
%JAVA_HOME%\bin-cp 參數javac -encoding UTF-8java HelloWorld 而非 java HelloWorld.class建立清晰的 Java 體系認知:JavaSE 是基石,JDK 用於開發,JRE 用於執行,JVM 是核心執行引擎。正確配置環境變數(特別是 CLASSPATH 搜尋規則),理解 javac/java 分工,是 Java 開發之旅的第一步。工欲善其事,必先利其器——花時間搭建標準化開發環境,將為後續學習節省大量除錯時間。