java -cp ".:lib/*:classes" com.Main
// . 表示當前工作目錄(啟動 java 命令的目錄)
// lib/* 表示 lib 目錄下所有 jar
// classes 表示編譯輸出目錄
| IDE | 源碼根目錄 | 編譯輸出目錄 | 運行時 Classpath 包含 |
|---|---|---|---|
| Eclipse | src/ | bin/ | bin/ + 專案引用的庫 |
| IntelliJ IDEA | src/main/java/ | out/production/ModuleName/ | 輸出目錄 + 依賴 jar |
| Maven/Gradle | src/main/java/ | target/classes/ / build/classes/ | 輸出目錄 + 依賴 jar |
.class 檔案。import com.example.User; → 尋找 Classpath根目錄/com/example/User.class。. 只有在 Classpath 顯式包含 . 時才生效,**不等於源碼目錄**。. 指向 src/ → 錯誤,. 是啟動命令的目錄。.**。javac -d bin src/com/Example.java 後,java -cp bin com.Example 才能執行。總結:Classpath 根目錄 = 編譯輸出目錄,源碼目錄僅供編譯器讀取,不在運行時 Classpath 中。