J2EE常用的JAR及开源项目

jopen 11年前
  • activation~与javaMail有关的jar包,使用javaMail时应与mail.jar (mail.jar和activation.jar)一起加入到lib中去,具体负责mail的数据源和类型等。
  • ApacheActiveMQ~Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。
  • ajaxtags~ajax提供的标签库,使用户能像使用jsp普通标签一样使用ajax。
  • Apache Ant~构建工具,用来完成大量其它任务如文档生成和测试执行等。
  • Antlr~语法分析器,例如帮助hibernate执行Hql语句。
  • AOP Alliance~AOP联盟AOP Alliance(http://aopalliance.sourceforge.net/)是个联合的开源协作组织,在多个项目间进行协作以期提供一套标准的AOP Java接口(interface)。Spring AOP就是基于AOP Alliance标准API实现的。如果你打算使用Spring的AOP或基于AOP的任何特性,只需这个JAR文件。
  • Asm~Hibernate在运行时使用这个代码生成库增强类(与java反射机制联合使用).ASM字节码库,cglib.jar包依赖的包。必需的jar包。
  • Aspectj~方面(aspect)是横切关注点的另一种称呼。方面提供了一种机制,利用该机制,可以用一种模块化的方式指定横切关注点。

http://www.ll19.com/

  • Btm~Bitronix Transaction Manager~多数据源事务管理。
  • Bsf~Bean Scripting Framework(BSF)是一个支持在Java应用程序内调用脚本语言 (Script),并且支持脚本语言直接访问Java对象和方法的一个开源项目。

http://www.ll19.com/

  • C3P0~一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。
  • Cglib~全称是Code Generation Library,它可以用来动态继承Java类或者实现接口,很多知名的开源项目中用到了它。Hibernate用它来实现PO字节码的动态生成,非常核心的库,必需的jar包。
  • Commons(Apache Commons)~

    common-annotations.jar:Spring和hibernate都可以使用,spring或者hibernate注解的依赖包。

    commons-bcel.jar:Byte Code Engineering Library用于分析,创建和处理Java类文件。

    commons-beanutils.jar:本包包含了一些Bean工具类类,是必须使用的jar包。

    commons-betwixt.jar:提供将 JavaBean 映射至 XML 文档,以及相反映射的服务。

    commons-bsf.jar:Bean Scripting Framework。脚本语言的接口,包括JSR-223。BSF是一套java class, 可以下载得到. 目前是bsf-bin- 2.3.1版本,有了这个baby , 你就能在java application中使用 JavaScript, Python, XSLT, Perl, tcl, ……等一大堆scripting language. 反过来也可以,就是在这些scripting language中调用任何已经注册过了的JavaBean,java object。

    Commons-Chain.jar:是一个实现了责任链设计模式的 Java 类库。作为程序开发人员,我们经常需要对一个实际上程序性的系统应用面向对象的方法。商业分析家和管理人员描述这样的系统时通常不使用类层次和序列图,而是使用流程图和工作流图表。但是不论如何,使用面向对象的方法解决这些问题时会带来更多的灵活性。面向对象的设计模式提供了有用的结构和行为来描述这种顺序的处理,比如模版方法(Template Method)[GoF]和责任链(Chain of Responsibility)[GoF]。Jakarta Commons的子项目Chain将上述两个模式组合成一个可复用的Java框架用于描述顺序的处理流程。这个在Jakarta Commons project社区中开发的框架,已经被广泛的接受并且使用于许多有趣的应用中,特别的是他被Struts和Shale应用框架作为处理HTTP请求处理的基础机制。你可以在需要定义和执行一组连续的步骤时使用CommonsChain。

    commons-cli-1.0.jar:这是一个处理命令的工具。比如main方法输入的string[]需要解析。你可以预先定义好参数的规则,然后就可以调用CLI来解析。

    commons-codec:主要包括核心的算法。比如 MD5。SHA1。或者常规加密解密算法:BASE64。

    commons-collections.jar:封装了各种集合对象。包含了一些Apache开发的集合类,功能比java.util.*强大。

    Commons-Compress.jar:用以实现将文件压缩或解压成 tar、zip、bzip2 等格式。

    Commons-Configuratio:是一个java应用程序的配置管理类库。可以从properties或者xml文件中加载软件的配置信息,用来构建支撑软件运行的基础环境。在一些配置文件较多较的复杂的情况下,使用该配置工具比较可以简化配置文件的解析和管理。也提高了开发效率和软件的可维护性。

    Commons-csv:CSV(comma separated value)是(逗号分隔值)的英文缩写,通常都是纯文本文件。Commons-csv用于读取和写入CSV文件。

    Commons-Daemon:可以帮你实现将一个普通的 Java 应用编程系统的一个后台服务。例如 Tomcat 就是利用这个项目来实现作为 Linux 和 Windows 的服务启动和停止的。

    commons-dbutils:commons-dbutils是 Apache 组织提供的一个开源 JDBC 工具类库,对传统操作数据库的类进行二次封装,可以把结果集转化成List。

    commons dbcp.jar:主流数据库连接池之一(DBCP、c3p0、proxool),单独使用DBCP需要使用commons-dbpc.jar、commons-collections.jar、commons-pool.jar三个包,。

    commons-digester.jar:它能方便地将XML文档所定义的元素转化为JAVA对象,其实它的用法有点象栈(当然内在的原理就是那个古老的东西,只是提供了更高一层的封装)。

    commons-discovery-0.2.jar:discovery模式的实现,提供定位与实例化类或其他资源的通用方法。使用最好的算法得到接口的所有实现。当用户想找到所有的提供某一服务的提供商时,这将特别有用。

    commons-el:(Expression Language)是 Apache 组织中一个用来解析 JSP 2.0 的表达式语言的 Java 类库。

    Commons-Email:Library for sending e-mail from Java.

    Commons-Exec: 是 Apache 上的一个 Java 项目,提供一些常用的方法用来执行外部进程。

    commons-fileupload.jar 实现文件上传功能包。

    Commons-Functo:库包括大量基本构造,可以在涉及闭包和高阶函数的复杂使用场景中重复使用。

    commons-httpclient.jar:Commons-HttpClient项目就是专门设计并用来简化 HTTP 客户端与服务器进行各种通讯编程实现的——它能实现常规的 HTTP 客户端程序(也就是浏览器程序)的各种功能。

    commons-io.jar 实现字符流的读写。可以看成是java.io的扩展。

    commons –JCI:Java Compiler Interface是一个封装了 Java 编译器的类库。

    commons –JCS:Java Caching System。JAVA缓存。

    Commons-Jelly:Jelly是一个基于XML的代码生成工具,可以将XML文档转换为可执行的代码。

    Commons-Jexl:Jexl是一个表达式语言,通过借鉴来自于Velocity的经验扩展了JSTL定义的表达式语言。

    commons.jxpat:定义了一个简单的XPath表达式语言的解析器

    commons-lang.jar 为java.lang提供扩展,编程基础类。

    Commons launcher:Launcher 组件是一个与平台无关的Java 应用载入器。 Commons-launcher 消除了需要批处理或者Shell脚本来载入Java 类。假如你需要在linux/windows上运行一个带有main方法的类,而该类又引用了许多jar和class文件,可以用Launcher。

    commons-logging.jar 通用的日志记录包。

    Commons-Math:是 Apache 上一个轻量级自容器的数学和统计计算方法包,包含大多数常用的数值算法。

    Commons-Modeler:是 Java 程序提供一个用于创建基于 JMX 规范的MBeans模型的工具。

    commons-net.jar 提供FTP等功能 ,这个包实现了很多基本的基于Intenet协议,下面是 commons 支持的协议:FTP/FTPS,NNTP,SMTP,POP3,Telnet,TFTP,Finger,Whoisrexec/rcmd /rlogin,Time (rdate) and Daytime Echo Discard NTP/SNTP。

    commons-OGNL:Object Graph Navigation Language的缩写,与JSP,JSF相比,OGNL是一种功能非常强大的针对Java的表达式语言(EL),它可用来读取和更新Java对象的属性。

    Commons-Primitives提供了一个更小,更快和更易使用的对Java基本类型的支持。当前主要是针对基本类型的 collection。.

    commons-pool.jar:DBCP数据库连接池,Apache的Jakarta组织开发的,Tomcat4的连接池也是DBCP。

    COmmons-Proxy:是 Apache 的一个子项目,封装了Java 对象代理的一些常用方法。

    Commons-Sanselan:是一个用来读取和生成图像的纯java实现的库,也包括分析图像信息,例如大小、颜色空间和元数据额等。

    commons-validator.jar:用来帮助进行验证的工具。比如验证Email字符串,日期字符串等是否合法。

    Commons-Transaction 旨在提供一个轻量级、标准化、高效的 Java 事务多线程编程的工具包,实现了多级锁、事务集合和事务级文件访问。

    Commons-SCXML:是 SCXML 引擎的 Java 实现版,功能基本上已经覆盖了 SCXML W3C 规范的全部内容。

    Commons-vfs: VFS(Virtual File System 虚拟机)为访问各种不同的文件系统提供了单一的应用程序编程接口(API),大大的简化了应用程序本身代码的复杂度。目前VFS支 持FTP、Local Files 、HTTP/HTTPS、SFTP、Temporary Files、Zip、Jar/Tar(uncompressed、tgz or tbz2)、gzip/bzip2、res、ram所有这些文件系统中的文件被封装成了FileObject这个类,文件的读写操作都通过此类来完成。文 件的路径采用了URL的方式。如果你在平常的工作中,需要得到一些不同格式文件的信息,比如文件大小、所在路径、文件最后更改时间等,或者我们需要对文件进行一些常规的操作,比如删除 文件,拷贝文件等等,那么Apache Commons中的VFS(Virtual File System)就是你可以考虑的一个开源系统。

    CXF(Apache CXF)~Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS 。这些 Services 可以支持多种协议,比如:SOAP、XML/HTTP、RESTful HTTP 或者 CORBA ,并且可以在多种传输协议上运行,比如:HTTP、JMS 或者 JBI,CXF 大大简化了 Services 的创建,同时它继承了XFire传统,一样可以天然地和 Spring 进行无缝集成。

http://www.ll19.com/

  • dom4j~一个Java的XML API,类似于jdom,用来读写XML文件的。
  • Dozer~Dozer是一个用来复制 JavaBean 属性的类库,类似 BeanUtils。
  • Drools~jBPM5 合并了jBPM项目和 Drools Flow。Drools Flow已经有几年的历史了,其目的是通过集成业务规则和复杂的事件处理实现灵活和可适配的业务流程并建立原型。实践已经证明,这些特性不仅是可行的,而且从长远来看,它会带来巨大的价值,能够更好地管理真实用例的复杂性。在过去几年间,这些内容已经与jBPM构建过程中所积累的经验很好地融合到了一起,jBPM5就是在这个基础上出现的。但jBPM的愿景并没有发生变化,只不过得到了拓展。Drools Flow将不再独立发展,最新版的Drools已经在使用jBPM5处理其流程需求了。
  • DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。
  • DisplayTag是一个非常好用的表格显示标签,适合MVC模式。

http://www.ll19.com/

  • ehcache~Java缓存框架 EhCache EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。

http://www.ll19.com/

  • FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写。

http://www.ll19.com/

  • Geronimo~Apache Geronimo 是 Apache 软件基金会的开放源码J2EE服务器,它集成了众多先进技术和设计理念。 这些技术和理念大多源自独立的项目,配置和部署模型也各不相同。 Geronimo能将这些项目和方法的配置及部署完全整合到一个统一、易用的模型中。

http://www.ll19.com/

  • h2~一个开源的关系数据库。

http://www.ll19.com/

  • Hamcrest~是一款比较不错的 JUnit 测试 jar 包。
  • Hibernate

    hibernate-annotations.jar Hibernate注解依赖包。

    hibernate-entitymanager.jar Hibernate的核心库。

    hibernate-jpa-2.0-api-1.0.1.Final.jar Hibernate依赖包,用来定义java持久性。

    hibernate3.jar Hibernate核心实现。

http://www.ll19.com/

  • Itext~用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。

http://www.ll19.com/

  • Jackson~是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。
  • Jasypt~简单好用的String加密工具。
  • Jasper~Tomcat6.0 版本后 lib 包的位置调整, jasper-runtime.jar 和 jasper-compiler-jdt.jar、jasper-compiler.jar 等都集成到 jasper.jar 包中去了。编译类,如果要手动编译JSP还包括tomcat lib下的其他JAR包:jasper.jar;servlet-api.jar;el-api.jar;catalina.jar;catalina- ant.jar;jasper-el.jar;jasper-jdt.jar;tomcat-juli.jar;jsp-api.jar;。
  • JFreeChart~ 是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。
  • Jaxen~Jaxen是一个Java编写的开源的XPath库。这是适应多种不同的对象模型,包括DOM,XOM,dom4j和JDOM。也可以作为适配器,转换Java字节代码或XML的Java bean为xml,从而使您可以使用XPath查询这些树了。
  • Jbpm~全称是Java Business Process Management(业务流程管理)。JBOSS的开源项目。
  • Jettison~一组StAX parser与writer用于读写JSON。这就使得可以在像CXF,XFire这样的service框架中实现基于JSON的web service。
  • Javassist是一个开源的分析、编辑和创建Java字节码的类库。能动态改变类的结构,或者动态生成类。
  • JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到 XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用程序中能方便地 结合XML数据和处理函数。
  • jcl- over-slf4j~在你的项目中很可能所用的组件,它们分别用了 JCL 和 SLF4J 两种组件。比如说在项目中用了 Hibernate 3.5 和 Struts,或其他 Apache 的一些开源组件,你大约也不想用了 SLF4J 的组件日志信息输出到 A 处,用了 JCL 的组件日志输出到 B 处,那你自己写的代码中的日志信息该往哪儿写呢?通过 SLF4J 统一输出日志信息,则需要用到JCL-Over-SLF4J+SLF4J。
  • Jmemcached~ 是一个Java版的 memcached 缓存服务器,基本上跟 memcached 是兼容的。jmemcached 是使用 Apache MINA 作为无堵塞的网络IO操作,但从 0.7 版本开始 jmemcached 改用了 Netty 作为网络IO操作包。
  • jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
  • Joda-Time~提供了一组Java类包用于处理包括ISO8601标准在内的date和time。可以利用它把JDK Date和Calendar类完全替换掉,而且仍然能够提供很好的集成
  • Jolokia~是一个用来访问远程 JMX MBeans 的崭新方法,与 JSR-160 连接器不同的是,它使用基于 HTTP 的 JSON 格式作为通讯协议,提供 JMX 批量操作等。
  • jpa-api~Java Persistence API.不多说了~
  • Jstl~使用jstl标签的实现包。
  • JS~用于在JAVA中执行javascript?
  • Jsr~JSR 是Java Specification Requests的缩写,意思是Java 规范请求。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。
  • JTA~即Java Transaction API,译为Java事务API。

http://www.ll19.com/

  • Kahadb~是activemq从版本5.4之后的默认消息存储引擎。

http://www.ll19.com/

  • log4j~日志。
  • Logback~logback由log4j作者Ceki开发,逐步取代log4j。
  • Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。
  • MyBatis 的前身就是 iBatis 。是一个数据持久层框架。
  • Mina(apache mina)~Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA 所支持的功能也在进一步的扩展中。
  • MVEL~MVEL是一个功能强大的基于Java应用程序的表达式语言。
  • neethi~Apache Neethi该组件为Axis2提供了非完整的WS-Policy实现,允许 Axis2用户操作和组合策略文档。是Axis2用于创建策略文档的运行时表示形式、以及对策略文档执行规范化、合并和求交操作的工具。WS- Policy 提供了指定Web服务的可能配置以及执行定义的安全性和身份验证的一种方式。
  • ORO~Jakarta ORO一套文本处理工具,能提供perl5.0兼容的正则表达式,AWK-like正则表达式, glob表达式。还提供替换,分割,文件名过虑等功能.
  • poi~Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
  • Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。
  • Qrcode~QR Code码是由日本Denso公司于1994年9月研制的一种矩阵二维码符号,它具有一维条码及其它二维条码所具有的信息容量大、可靠性高、可表示汉字及图象多种文字信息、保密防伪性强等优点。此jar包即解析生成二维码~
  • Spring

    spring-aop:spring 的面向切面编程,提供AOP(面向切面编程上述AOP联盟的接口)实现。

    spring-asm:spring 独立的asm程序,相比2.5版本,需要额外的asm.jar包。

    spring-aspects:spring 提供对AspectJ框架的整合。

    spring-beans:springIoC(依赖注入)的基础实现。

    spring-context.support:spring-context 的扩展支持,用于 MVC 方面。

    spring-context:spring 提供在基础IoC功能上的扩展服务,此外还提供许多企业级服务的支持,如邮件服务、任务调度、JNDI定位、EJB 集成、远程访问、缓存以及各种视图层框架的封装等。

    spring-core:spring3.1的核心工具包。

    spring-expression:spring 表达式语言。

    spring-instrument.tomcat:spring3.1 对 Tomcat 的连接池的基成。

    spring-instrument:spring3.1 对服务器的代理接口。

    spring-jdbc:spring对 JDBC的简单封装。

    spring-jms:spring为简化 JMS API 使用而作的简单封装。

    spring-orm:spring 整合第三方的ORM (对象关系映射)映射支持,如 Hibernate 、Ibatis、Jdo以及spring的JPA的支持。

    spring-oxm:spring 对Object/XMI 的映射的支持,可以让JAVA与XML之间来回切换。

    spring-test:spring 对Junit等测试框架的简单封装。

    spring-transaction:为JDBC、Hibernate、JDO、JPA 等提供的一致的声明式和编程式事务管理。

    spring-web.portlet:springMVC的增强。

    spring-web.servlet:对 J2EE6.0 Servlet3.0 的支持。

    spring-web.struts:整合 Struts 的支持。

    spring-web:springWeb下的工具包。

    Spring Security:前身是 Acegi Security ,是 Spring 项目组中用来提供安全认证服务的框架。 

    spring-module:验证框架,进行表单验证。

  • Servlet-api~没啥好说的。
  • Shiro~权限框架类似于SpringSecurity。
  • sitemesh~OS(OpenSymphony)的SiteMesh是一个用来在JSP中实现页面布局和装饰(layout and decoration)的框架组件,能够帮助网站开发人员较容易实现页面中动态内容和静态装饰外观的分离。
  • SLF4J,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。
  • Spymemcached~一个采用Java开发的异步、单线程的Memcached客户端。
  • StAX~(Streaming API for XML)面向流的拉式解析XML,速度快、占用资源少,非常合适处理大数据量的xml文件。
  • Standard~和jstl一起使用,实现el语言。你想在项目中使用JSTL和EL表达式,那么你必须要引入这个standard.jar文件。
  • Struts~MVC设计模式的应用框架,不多说了。
  • Struts Menu~是一个用来生成页面导航菜单的标签库,需要 struts 的支持。
  • Urlrewritefilter~是一个用于改写URL的Web过滤器,类似于Apache的mod_rewrite。
  • Velocity 是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。当Velocity应用于web开发时,界面设计人 员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注 业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供 了一种可选的方案。
  • Woodstox~一个快速开源且符合StAX(STreaming Api for Xml processing)规范的XML处理器(做为一个处理器意味着它可以处理输入(相当于解析)与输出(相当于写入,序列化))。
  • wsdl4j~顾名思义,是一个解析和创建WSDL的 JAVA类库(工具包)。
  • Xalan~它是一个XSLT的处理包,用于将XML文档转为HTML文档,文本文件TXT,或其他格式的XML文档。它实现了XSLT1.0和XPath1.0的接口,可以在命令行调用,或者在applet,servlet中调用,或者作为其他程序的一个模块。
  • XmlResolver~来解析外部 DTD、实体和架构。
  • xmlschema~顾名思义,用于解析xml schema。
  • xml-apis.jar同xercesImpl.jar~这两个jar包是一个与可扩展标记语言(XML)兼容的语法分析器。