首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

J2EE 常用 JAR 包功能速查手冊:從 Hibernate 到 Spring 全覆蓋

     編輯:Java 相關知識

前言:依賴地獄中的導航圖

Java 專案 `lib` 目錄下堆疊幾十個 JAR 是常態。面對命名相似、功能重疊的套件 (如 `commons-collections` vs `commons-pool`、 `jxl` vs `poi`),開發者常陷入「不知能否刪除」、「版本衝突怎麼解」的困境。本文整理近百個經典 J2EE 專案常見 JAR,按功能域分類說明核心用途、關鍵依賴關係與可替代性,作為專案依賴審查的快速參考。

核心框架與 ORM 層

JAR 檔名核心用途關鍵依賴/備註
hibernate3.jarHibernate 3 核心 ORM 引擎需搭配 cglib、asm、dom4j、jta
cglib-2.1.3.jar位元碼生成庫,Hibernate 動態 Proxy、懶載入核心依賴 asm.jar;Spring AOP 亦用
asm.jar位元碼操作框架,CGLib 底層依賴版本必須與 CGLib 配套
dom4j-1.4.jarXML 解析/寫入,Hibernate 讀取映射檔類似 JDOM,效能較佳
jta.jarJTA 事務規範 API (UserTransaction 等)Hibernate、Spring 事務管理必需
ehcache-1.2.jarHibernate 二級快取預設實作可換 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.jarMySQL 官方 JDBC 驅動 (Type 4)符合 JCA 規範,支援連線池

Web 層與 MVC 框架

JAR 檔名核心用途所屬生態
webwork-2.2.5.jarWebWork 2 核心 (Struts 2 前身)WebWork
xwork.jarWebWork 底層命令模式框架WebWork 核心依賴
freemarker.jar模板引擎,WebWork 預設視圖技術模板語言生成 HTML
velocity.jar / velocity-dep.jarVelocity 模板引擎WebWork 可選視圖
velocity-tools-view.jarVelocity Web 整合工具類提供 $request、$session 等
oscore.jarWebWork 通用工具庫內部依賴
rife-continuations.jarRIFE 框架延續支援,WebWork 整合用進階流程控制
sitemesh.jar頁面裝飾/佈局框架 (Decorator 模式)獨立於 MVC,可整合任何框架
struts.jar (未列出)Struts 1.x 核心經典 MVC,漸被 Struts2 取代

Spring 生態系

JAR 檔名核心用途備註
spring.jarSpring 核心全包 (IoC、AOP、JDBC、ORM、Web、Context)也可拆分模組 jar (spring-core, spring-aop...)
aopalliance.jarAOP 聯盟介面 (MethodInterceptor 等)Spring AOP 底層依賴
aspectjweaver.jar / aspectjrt.jarAspectJ 織入器/執行時Spring @AspectJ 支援需 weaving

常用工具庫

JAR 檔名核心用途替代/備註
commons-lang.jarjava.lang 擴充 (StringUtils, ObjectUtils, SystemUtils...)幾乎專案必備
commons-collections.jar擴充集合類 (BidiMap, MultiMap, LRUMap...)功能強於 java.util.*
commons-beanutils.jarBean 屬性操作、轉換、複製Hibernate、Struts 內部大量使用
commons-io.jarIO 操作補完 (FileUtils, IOUtils, FilenameUtils)java.io/nio 好夥伴
commons-fileupload.jarServlet 檔案上傳解析 (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.jarXML 規則驅動物件生成 (堆疊模式)Struts 配置解析、Tomcat server.xml 解析
log4j.jar經典日誌框架可換 SLF4J + Logback
ognl.jarOGNL 表達式語言 (Struts2、WebWork 核心)支援屬性導航、投影、選擇

XML、Web Services 與序列化

JAR 檔名核心用途備註
axis-ant.jarAxis 1.x Ant 任務 (wsdl2java、java2wsdl、admin)建置腳本用
jaxrpc.jarJAX-RPC API (Java XML-RPC 映射)Axis、Spring Web Services 依賴
saaj.jarSOAP with Attachments API for JavaSOAP 訊息構建/解析
wsdl4j-1.5.1.jarWSDL 解析/生成框架Axis、CXF 底層依賴
xercesImpl.jar / xml-apis.jar (未列出)XML 解析器實作 / JAXP 標準 APIJDK 內建較舊版,常需覆蓋

報表與文件處理

JAR 檔名核心用途備註
itext.jar / iTextAsian.jarPDF 生成/操作,支援中文字體低版本免費,新版 AGPL 授權需注意
jasperreports.jarJasperReports 報表引擎核心依賴 iText、POI、Commons 等
poi.jarMicrosoft Office 格式讀寫 (Excel、Word、PPT)HSSF (xls)、XSSF (xlsx)
jxl.jar輕量級 Excel API (僅支援 .xls)API 簡單,不支援 .xlsx,功能較 POI 弱

BIRT 報表相關 (Eclipse BIRT)

JAR 檔名核心用途
chartengineapi.jar圖表引擎 API
coreapi.jarBIRT 核心 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_*.jarEMF 模型框架 (BIRT 底層模型基礎)

其他常見套件

  • activation.jar / javamail.jar:JavaMail 郵件發送核心 (需搭配使用)。
  • quartz-1.6.0.jar:任務排程框架 (Job、Trigger、Scheduler)。
  • dwr.jar:Direct Web Remoting (AJAX 反向呼叫 Java 方法)。
  • FCKeditor.jar:FCKeditor 富文本編輯器伺服端整合 (圖片上傳/瀏覽)。
  • flute.jar / sac.jar:CSS 解析器相關 (BIRT、iText 可能用)。
  • standard.jar / jstl.jar:JSTL 標準標籤庫實作與 API。
  • js.jar:Rhino JavaScript 引擎 (Java 執行 JS)。
  • jenkov-prizetags-bin-3.2.0.jar:功能豐富的 JSP 標籤庫 (含 Tree Tag)。
  • ant.jar / antlr.jar:建置工具/語法分析器,**執行期不需打包**。
  • com.ibm.icu_*.jar:ICU 國際化支援,**Eclipse RCP 專用,一般 Web 專案不需**。

依賴管理實戰建議

  1. 善用 Maven/Gradle 依賴傳遞:手動管理 `lib` 目錄是反模式,除非極簡專案。
  2. 排除傳遞依賴解決衝突:如 `commons-logging` 衝突 SLF4J,用 `` 或 `jcl-over-slf4j` 橋接。
  3. 版本統一策略:定義 `dependencyManagement` 鎖定核心庫版本 (Spring、Hibernate、Commons 系列)。
  4. 定期掃描漏洞:OWASP Dependency-Check、Snyk 掃描 CVE (如舊版 Struts2、Commons-Collections 反序列化漏洞)。
  5. 區分 Compile / Runtime / Test Scope:`ant.jar`、`junit.jar` 僅 Test/Provided,勿打入產出物。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved