| 目錄/檔案 | 說明 |
|---|---|
| bin/ | 可執行工具:java、javac、jar、javadoc、jconsole 等 |
| db/ | 內嵌 Java DB (Derby) 資料庫 |
| include/ | C/C++ 頭文件,支援 JNI 開發 |
| jre/ | 獨立運行環境,含 JVM、核心類庫、部署技術 |
| lib/ | 工具類實際實現:tools.jar (javac 編譯器)、dt.jar (設計時類庫) |
| src.zip | 核心類庫源碼 (String、ArrayList、HashMap...) |
關鍵認知:bin/javac 只是啟動器,真正編譯邏輯在 lib/tools.jar 的 com.sun.tools.javac.Main。
java、javac 等命令時,去 Path 列表的路徑尋找可執行檔。%JAVA_HOME%\bin 加入系統變數 Path(建議置頂)。javac -version 顯示版本號即成功。. (當前目錄) + %JAVA_HOME%\lib\dt.jar + %JAVA_HOME%\lib\tools.jar + 專案依賴路徑。java -version 正常顯示。JAVA_HOME=C:\Java\jdk1.8.0_202%JAVA_HOME%\bin%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar




# ~/.bashrc 或 ~/.zshrc export JAVA_HOME=/usr/lib/jvm/java-11-openjdk export PATH=$JAVA_HOME/bin:$PATH # Classpath 通常不需設定 source ~/.bashrc
| 現象 | 原因 | 解決 |
|---|---|---|
| 'javac' 不是內部命令 | Path 未包含 bin 目錄 | 檢查 Path 順序、重啟終端機 |
| 版本不一致 | 多 JDK 安裝,Path 順序錯誤 | 將目標 JDK bin 置頂 |
| ClassNotFoundException | Classpath 缺少依賴路徑 | 用 -cp 或 Manifest 指定 |
| 中文亂碼 | 編碼不一致 | 統一 UTF-8:源碼、編譯、運行、終端機 |