執行《Thinking in Java 4th Edition》(TIJ4)隨書原始碼時,`import static net.mindview.util.Print.*;` 報錯「程式包 net.mindview 不存在」。這是因為缺少 TIJ4 自帶的支援庫 JAR。本文提供從下載、編譯到 IDE/命令列配置的完整流程。
根本原因
TIJ4 書中所有範例碼依賴作者自行封裝的 `net.mindview.util` 套件(含 `Print`、`BinaryFile` 等工具類),**不在 JDK 標準庫中**,必須手動加入類別路徑。
解決步驟
1. 取得支援庫 JAR
- 官方下載:
https://github.com/BruceEckel/TIJ4-code → `Clone or download` → `Download ZIP`
- 解壓後在 `lib/` 目錄找到 `mindview.jar`(或 `tij4.jar`)
- 或直接下載單一 JAR:
https://repo1.maven.org/maven2/com/mindviewinc/tij4/4.0/tij4-4.0.jar
2. 命令列編譯/執行(最透徹)
# 假設原始碼在 C:\TIJ4\initialization\Flower.java
# JAR 放在 C:\TIJ4\lib\mindview.jar
cd C:\TIJ4\initialization
javac -cp ".;..\lib\mindview.jar" Flower.java
java -cp ".;..\lib\mindview.jar" Flower
- `-cp` (classpath) 包含當前目錄 `.` 與 JAR 路徑
- Windows 用 `;` 分隔,Linux/Mac 用 `:`
3. 永久配置環境變數(可選)
set CLASSPATH=.;C:\TIJ4\lib\mindview.jar;%CLASSPATH%
之後可直接 `javac Flower.java`、`java Flower`。
4. Eclipse 配置
- 專案右鍵 → `Properties` → `Java Build Path` → `Libraries` → `Add External JARs...` → 選 `mindview.jar`
- 或建立 `User Library`:`Preferences` → `Java` → `Build Path` → `User Libraries` → `New` → `Add External JARs` → 專案引用該 User Library
5. IntelliJ IDEA 配置
- `File` → `Project Structure` → `Modules` → `Dependencies` → `+` → `JARs or directories` → 選 `mindview.jar`
- Scope 選 `Compile`
6. VS Code / EditPlus 等編輯器
在專案根目錄建立 `.classpath` 或修改編譯腳本加入 `-cp` 參數,同命令列邏輯。
常見誤區
| 誤區 | 正確認知 |
| 以為 `Print` 是 JDK 類別 | 它是 TIJ4 作者自寫工具類,單純封裝 `System.out.print` |
| 只下載原始碼不加 JAR | 原始碼裡 `import net.mindview.util.Print` 必須有對應 class 檔 |
| 用 `import net.mindview.util.*` 卻沒配置 classpath | 編譯器找不到 package 根目錄 |
若不想依賴外部 JAR:自行實作 Print
package net.mindview.util;
public class Print {
public static void print(Object obj) { System.out.println(obj); }
public static void print(String format, Object... args) { System.out.printf(format + "\n", args); }
}
將上述檔案存為 `net/mindview/util/Print.java` 放在原始碼目錄下,即可編譯通過,無需外部 JAR。
驗證
C:\TIJ4\initialization>javac -cp ".;..\lib\mindview.jar" Flower.java
C:\TIJ4\initialization>java -cp ".;..\lib\mindview.jar" Flower
Constructor w/ int arg only, petalCount= 47
String & int args
default constructor (no args)
petalCount = 47 s = hi
下載 `mindview.jar` 並正確加入 `-cp` / `CLASSPATH` / IDE Build Path,即可徹底解決 TIJ4 範例碼「找不到 net.mindview.util」問題。
- 上一篇文章: SQL GROUP BY 進階:查詢每系最高分學生學號、姓名、成績的正確寫法
- 下一篇文章: WPF C# TreeView 動態右鍵選單新增子節點:完整 MVVM 與 Code-Behind 實作
Copyright ©
程式碼之家 All Rights Reserved