Java 專案 `lib` 目錄下堆疊幾十個 JAR 是常態。面對命名相似、功能重疊的套件 (如 `commons-collections` vs `commons-pool`、 `jxl` vs `poi`),開發者常陷入「不知能否刪除」、「版本衝突怎麼解」的困境。本文整理近百個經典 J2EE 專案常見 JAR,按功能域分類說明核心用途、關鍵依賴關係與可替代性,作為專案依賴審查的快速參考。
| JAR 檔名 | 核心用途 | 關鍵依賴/備註 |
|---|---|---|
| hibernate3.jar | Hibernate 3 核心 ORM 引擎 | 需搭配 cglib、asm、dom4j、jta |
| cglib-2.1.3.jar | 位元碼生成庫,Hibernate 動態 Proxy、懶載入核心 | 依賴 asm.jar;Spring AOP 亦用 |
| asm.jar | 位元碼操作框架,CGLib 底層依賴 | 版本必須與 CGLib 配套 |
| dom4j-1.4.jar | XML 解析/寫入,Hibernate 讀取映射檔 | 類似 JDOM,效能較佳 |
| jta.jar | JTA 事務規範 API (UserTransaction 等) | Hibernate、Spring 事務管理必需 |
| ehcache-1.2.jar | Hibernate 二級快取預設實作 | 可換 OSCache、SwarmCache 等 |
| JAR 檔名 | 核心用途 | 備註 |
|---|---|---|
| commons-pool-1.2.jar | 通用物件池實作,DBCP 連線池基礎 | Tomcat 預設連線池即 DBCP |
| commons-dbcp.jar (未列出但常見) | 資料庫連線池實作 | 依賴 commons-pool |
| proxool-0.9.0RC3.jar | 另一款連線池實作,支援監控 | 配置檔 `proxool.xml` |
| mysql-connector-java-5.0.5-bin.jar | MySQL 官方 JDBC 驅動 (Type 4) | 符合 JCA 規範,支援連線池 |
| JAR 檔名 | 核心用途 | 所屬生態 |
|---|---|---|
| webwork-2.2.5.jar | WebWork 2 核心 (Struts 2 前身) | WebWork |
| xwork.jar | WebWork 底層命令模式框架 | WebWork 核心依賴 |
| freemarker.jar | 模板引擎,WebWork 預設視圖技術 | 模板語言生成 HTML |
| velocity.jar / velocity-dep.jar | Velocity 模板引擎 | WebWork 可選視圖 |
| velocity-tools-view.jar | Velocity Web 整合工具類 | 提供 $request、$session 等 |
| oscore.jar | WebWork 通用工具庫 | 內部依賴 |
| rife-continuations.jar | RIFE 框架延續支援,WebWork 整合用 | 進階流程控制 |
| sitemesh.jar | 頁面裝飾/佈局框架 (Decorator 模式) | 獨立於 MVC,可整合任何框架 |
| struts.jar (未列出) | Struts 1.x 核心 | 經典 MVC,漸被 Struts2 取代 |
| JAR 檔名 | 核心用途 | 備註 |
|---|---|---|
| spring.jar | Spring 核心全包 (IoC、AOP、JDBC、ORM、Web、Context) | 也可拆分模組 jar (spring-core, spring-aop...) |
| aopalliance.jar | AOP 聯盟介面 (MethodInterceptor 等) | Spring AOP 底層依賴 |
| aspectjweaver.jar / aspectjrt.jar | AspectJ 織入器/執行時 | Spring @AspectJ 支援需 weaving |
| JAR 檔名 | 核心用途 | 替代/備註 |
|---|---|---|
| commons-lang.jar | java.lang 擴充 (StringUtils, ObjectUtils, SystemUtils...) | 幾乎專案必備 |
| commons-collections.jar | 擴充集合類 (BidiMap, MultiMap, LRUMap...) | 功能強於 java.util.* |
| commons-beanutils.jar | Bean 屬性操作、轉換、複製 | Hibernate、Struts 內部大量使用 |
| commons-io.jar | IO 操作補完 (FileUtils, IOUtils, FilenameUtils) | java.io/nio 好夥伴 |
| commons-fileupload.jar | Servlet 檔案上傳解析 (multipart/form-data) | Struts2、Spring MVC 底層依賴 |
| commons-validator.jar | 驗證框架 (Email、Date、CreditCard 等) | Struts Validator 整合 |
| commons-cli-1.0.jar | 命令列參數解析 | 主程式啟動參數處理 |
| commons-discovery-0.2.jar | 服務發現機制 (尋找介面實作類) | Axis、JAX-RPC 用 |
| commons-digester.jar | XML 規則驅動物件生成 (堆疊模式) | Struts 配置解析、Tomcat server.xml 解析 |
| log4j.jar | 經典日誌框架 | 可換 SLF4J + Logback |
| ognl.jar | OGNL 表達式語言 (Struts2、WebWork 核心) | 支援屬性導航、投影、選擇 |
| JAR 檔名 | 核心用途 | 備註 |
|---|---|---|
| axis-ant.jar | Axis 1.x Ant 任務 (wsdl2java、java2wsdl、admin) | 建置腳本用 |
| jaxrpc.jar | JAX-RPC API (Java XML-RPC 映射) | Axis、Spring Web Services 依賴 |
| saaj.jar | SOAP with Attachments API for Java | SOAP 訊息構建/解析 |
| wsdl4j-1.5.1.jar | WSDL 解析/生成框架 | Axis、CXF 底層依賴 |
| xercesImpl.jar / xml-apis.jar (未列出) | XML 解析器實作 / JAXP 標準 API | JDK 內建較舊版,常需覆蓋 |
| JAR 檔名 | 核心用途 | 備註 |
|---|---|---|
| itext.jar / iTextAsian.jar | PDF 生成/操作,支援中文字體 | 低版本免費,新版 AGPL 授權需注意 |
| jasperreports.jar | JasperReports 報表引擎核心 | 依賴 iText、POI、Commons 等 |
| poi.jar | Microsoft Office 格式讀寫 (Excel、Word、PPT) | HSSF (xls)、XSSF (xlsx) |
| jxl.jar | 輕量級 Excel API (僅支援 .xls) | API 簡單,不支援 .xlsx,功能較 POI 弱 |
| JAR 檔名 | 核心用途 |
|---|---|
| chartengineapi.jar | 圖表引擎 API |
| coreapi.jar | BIRT 核心 API |
| dataadapterapi.jar / dteapi.jar | 資料適配器/資料引擎 API |
| engineapi.jar | 報表執行引擎 API |
| modelapi.jar | 報表模型 API (RPTDesign) |
| scriptapi.jar | 腳本引擎整合 (JavaScript/Rhino) |
| org.eclipse.birt.report.viewer.nl1_2.2.0.v20070526-1010.jar | 檢視器本地化資源 |
| org.eclipse.emf.common/ecore/ecore.xmi_*.jar | EMF 模型框架 (BIRT 底層模型基礎) |