常用Java开源库(转载)
Jakarta common
Commons Logging
Jakarta Commons Logging (JCL)提供的是一个日志(Log)接口(interface),同时兼顾轻量级和不依赖于具体的日志实现工具。 它提供给中间件/日志工具开发者一个简单的日志操作抽象,允许程序开发人员使用不同的具体日志实现工具。用户被假定已熟悉某种日志实现工具的更高级别的细节。JCL提供的接口,对其它一些日志工具,包括Log4J, Avalon LogKit, and JDK 1.4等,进行了简单的包装,此接口更接近于Log4J和LogKit的实现.
Commons-Latka
是一个HTTP 功能测试包,用于自动化的QA,验收和衰减测试.
Commons-Pool
提供了通用对象池接口,一个用于创建模块化对象池的工具包,以及通常的对象池实
Commons-Math
Math 是一个轻量的,自包含的数学和统计组件,解决了许多非常通用但没有及时出现在Java标准语言中的实践问题.
Commons-Jelly
Jelly能够把XML转换成可执行代码,所以Jelly是一个基于XML与Java的脚本和处理引擎。 Jelly借鉴了JSP定指标签,Velocity,Cocoon和Xdoclet中的脚本引擎的许多优点。Jelly可以用在命令行,Ant或者Servlet之中。
Commons-FileUpload
FileUpload 使得在你可以在应用和Servlet中容易的加入强大和高性能的文件上传能力.
Commons-BeanUtils
提供对 Java 反射和自省API的包装
Commons-Chain
提供实现组织复杂的处理流程的“责任链模式”.
Commons-Codec
包含一些通用的编码解码算法。包括一些语音编码器, Hex, Base64, 以及URL encoder.
Commons-Collections
提供一个类包来扩展和增加标准的 Java Collection框架
Commons-Discovery
提供工具来定位资源 (包括类) ,通过使用各种模式来映射服务/引用名称和资源名称。
Commons-EL
提供在JSP2.0规范中定义的EL表达式的解释器.
Commons-Jexl
是一个表达式语言,通过借鉴来自于Velocity的经验扩展了JSTL定义的表达式语言。.
Jakarta Commons HttpClient
作为HTTP客户端组件与服务器进行通讯,同时使用了jdom进行XML数据的解析。
Jakarta Commons Net
一个用于操作Internet基础协议(Finger,Whois,TFTP,Telnet,POP3,FTP,NNTP,以及SMTP)的底层API。Net包不仅支持对各种低层次协议的访问,而且还提供了一个高层的抽象。它使得开发者不再需要直接面对各种协议的Socket级的低层命令。
Commons-Configuration
工具可以(从 *Properties文件 *XML文件 *JNDI *JDBC 数据源 *System properties *Applet parameters *Servlet parameters等)来读取相应的信息
Commons-validator
提供了一个简单的,可扩展的框架来在一个XML文件中定义校验器 (校验方法)和校验规则。支持校验规则的和错误消息的国际化。
Commons-Digester 基于规则的XML文档解析,主要用于XML到Java对象的映射.
Commons Betwixt 这个组件提供一个XML自省(introspection)机制用来把Java Bean映射到XML文档.他实现了与标准的Introspector及BeanInfo类相似的XMLIntrospector及XMLBeanIfno类.
Commons-Convert
的目标是提供一个简单的包来完成把一种类型的对象转换成另一种.但它目前只支持String到Object或Object到String的转换.
Commons4E
这个Eclipse插件方便了利用Jakarta Commons组件所进行地开发.Commons4E根据用户选择的字段(fields)利用commons-lang builders来自动生成以下方法:toString(),hashcode(),equals(Object)和compareTo(Object).
Commons-Email
的目的是提供一组用于发送Email的API,它基于Java Mail API基础之上并进行了简化。它提供的主要Java类有
SimpleEmail
这个类用于发送简单的文本类型email。
MultiPartEmail
这个类允许发送文本消息并附带附件。
HtmlEmail
用于发送Html格式的附件并支持内含图片。EmailAttachment:这是一个简单的容器类用于简化附件的处理。
Commons-IO
是Jakarta Commons项目的一个子项目。用来帮助进行IO功能开发.它包含三个主要的领域:Utility classes-提供一些静态方法来完成公共任务.Filters-提供文件过滤器的各种实现.Streams-提供实用的Stream,reader与writer实现.
ANother Tool for Language Recognition(ANTLR)
它的描述语言可以生成词法分析器、语法分析器与语义分析器,也就是说,我们可以用它来识别加工不同的语言(编译器的编译器)。它同时支持3大类语言的输出:C++, Java, C#(按照生日排序),也就是说,我们可以利用它来用C#生成编译器,它是这样的一种工具,它可以接受词文法语言描述,并能产生识别这些语言的语句的程序。作为翻译程序的一部分,你可以使用简单的操作符和动作来参数化你的文法,使之告诉ANTLR怎样去创建抽象语法树(AST)和怎样产生输出。ANTLR知道怎样去生成识别程序,语言包括Java,C++,C# 。
cglib
是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java 接口。Hibernate用它来实现PO字节码的动态生成。主页 http://cglib.sourceforge.net/
c3p0-0.8.4.5.jar
是一个容易使用的java库,用于扩充传统的基于驱动管理的JDBC驱动和JNDI绑定数据源,包括执行Connection和Statement Pooling的数据源。
cleanimports是对java文件中的无用的imports作清理,并通过配置文件提供的格式对imports代码段进行格式整理。
concurrent-1.3.2.jar
提供标准化、高效的版本的实用的类,用于并行的Java程序。http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html
connector.jar
是JCA(J2EE Connector Architecture)规范的包
dom4j-1.5.2.jar
Dom4J是一个在Java平台上使用Java Collections Framework与XML、 XPath和XSLT协同工作的开源Java库,它全面支持DOM、SAX和JAXP。
ehcache-1.1.jar
EHCache 是一个纯java的在进程中的缓存,它具有以下特性:快速,简单,为Hibernate2.1充当可插入的缓存,最小的依赖性,全面的文档和测试。官方网站 http://ehcache.sourceforge.net/
jaxen-1.1-beta-4.jar
是一个用Java开发的XPath 引擎,用于配合各种基于XML的对象模型,如DOM, dom4j ,JDOM以及Java Beans。
jboss-cache.jar
是一个复制的事务处理缓存,它允许你缓存企业级应用数据来更好的改善性能。缓存数据被自动复制,让你轻松进行JBoss服务器之间的集群工作。JBossCache能够通过JBoss应用服务或其他J2EE容器来运行一个MBean服务,当然,它也能独立运行。JBossCache包括两个模块:TreeCache和TreeCacheAOP。TreeCache --是一个树形结构复制的事务处理缓存。TreeCacheAOP --是一个“面向对象”缓存,它使用AOP来动态管理POJO(Plain Old Java Objects) 注:AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向方面编程。官方网站 http://www.jboss.org/products/jbosscache
jboss-jmx.jar
JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理。
oscache-2.0.2.jar
OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。
OSCache有以下特点:缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。拥有全面的API--OSCache API给你全面的程序来控制所有的OSCache特性。永久缓存--缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to-create)数据来保持缓存,甚至能让应用重启。支持集群--集群缓存数据能被单个的进行参数配置,不需要修改代码。缓存记录的过期--你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不需要时)。官方网站 http://www.opensymphony.com/oscache/
proxool-0.8.3.jar
Proxool是Java数据库连接池,它能向存在的JDBC驱动中透明的增加数据库连接池。
swarmcache-1.0rc2.jar
SwarmCache是一个简单且有效的分布式缓存,它使用IP multicast与同一个局域网的其他主机进行通讯,是特别为集群和数据驱动web应用程序而设计的。SwarmCache能够让典型的读操作大大超过写操作的这类应用提供更好的性能支持。SwarmCache使用JavaGroups来管理从属关系和分布式缓存的通讯。官方网站 http://swarmcache.sourceforge.net/
xalan-2.6.jar
Xalan名称来自于一种罕见的乐器。Xalan-Java是一个将XML转换成HTML、text或其他XML文件类型的XSLT(XSL Transformations)处理机制。它使用XSL Transformations (XSLT) Version 1.0 and XML Path Language (XPath) Version 1.0。它在命令行方式、applet、servlet、或其他程序的模块中都可以使用。Xalan同时构建于SAX2和DOM level 2上。官方网站;http://xml.apache.org/xalan-j/
xerces-2.6.2.jar
Xerces(名称来源于一种叫Xerces Blue的蝴蝶)提供世界级的XML解析和产生。充分验证的语法分析可用于Java和C++,执行W3C的XML和DOM(Level1 and2)标准,以及SAX(version 2)标准。其语法具有高模块化和可配置化。同时提供支持XML Schema(W3C标准草案)。
checkstyle 检查java程序源代码编码风格的,是java程序员不可或缺的工具,用以检查自己的编码习惯是否符合公司的要求或sun的约定。当然如果你用了ide,那里可能有相应的功能或插件来帮助程序员来完成这项工作。也如checkstyle其名所示,它只检查,不进行beautifier操作。所以,它应比较适合用于项目管理,用于dailybuild.如果你想借助工具来beautifier你的java源代码,可以参考我写的jalopy安装使用.
Clickstream
它是一个JavaServlet过滤器,用来跟踪用户请求(比如:点击)和请求 队列(比如:点击流)以向网络管理员显示谁在她的网站上以及每个用户正在访问那个页面。 http://www.opensymphony.com/clickstream/
Cargo
是一个Java类包用来操作当前J2EE容器.它提供了Ant和Maven API来停止/启动/配置Java容器也提供了Java API来解释/创建J2EE组件.
DbUnit
是为数据库驱动的项目提供的一个对JUnit 的扩展,除了提供一些常用功能,它可以将你的数据库置于一个测试轮回之间的状态。
iText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。使用iText与PDF能够使你正确的控制Servlet的输出。
DWR(Direct Web Remoting)
是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码).它的最新版本DWR0.6添加许多特性如:支持Dom Trees的自动配置,支持Spring(JavaScript远程调用spring bean),更好浏览器支持,还支持一个可选的commons-logging日记操作.
Java2Html
能够的把java源代码转换为高亮有序的HTML, RTF, TeX 与 XHTML格式。这个开源项目有一个java applet 与许多插件以便能够与其它系统很好的给合。
jMock
利用mock objects思想来对Java code进行测试。jMock具有以下特点:容易扩展,让你快速简单地定义mock objects,因此不必打破程序间的关联,让你定义灵活的超越对象之间交互作用而带来测试局限,减少你测试地脆弱性。
PMD
是一个Java源码分析器。它可以发现不需要使用的变量,空的Catch块和不需要创建的对象等。它还包含一个CPD工具可以探测一块代码中相同的部分。
OS(OpenSymphony)的SiteMesh
是一个用来在JSP中实现页面布局和装饰(layout and decoration)的框架组件,能够帮助网站开发人员较容易实现页面中动态内容和静态装饰外观的分离。
Velocity
是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。 当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。 Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。Velocity也可以为Turbine web开发架构提供模板服务(template service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。 【VeloEclipse :Velocity在Eclipse平台下的一个辅助开发插件】
Jakarta ORO
一套文本处理工具,能提供perl5.0兼容的正则表达式,AWK-like正则表达式, glob表达式。还提供替换,分割,文件名过虑等功能.
caucho:Burlap
是一个轻量级的XML RPC协议.利用Burlap Web服务协议使用Web服务不需要大型的框架也不用学习其它协议字母汤(alphabet soup).
Caucho Resin
提供了最快的jsp/servlets运行平台。它支持Servlet,XSL Filtering6并且具备XSLT和XPath1.0引擎。
Caucho Hessian
也是一个轻量级的,自定义描述的二进制RPC协议.因为它是一个二进制协议,所以它很适合于发送二进制数据而需要使用其它附件来扩展这个协议.
---
cos上传组件它是著名O'Reilly的图书出版公司开发的。这个上传的组件做得很棒。
EasyMock
为Mock Objects提供接口并在JUnit测试中利用Java的proxy设计模式生成它们的实例。EasyMock最适合于测试驱动开发。
FreeMarker
允许Java servlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。模板用servlet提供的数据动态地生成HTML。模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。
Jamon
是一个Java文本模板引擎,用于生成动态HTML, XML,或任何基于文本的内容。它有一个丰富的功能集,支持封装,参数化,功能分解,表达逻辑重用。模板声明它们要求生成的参数,包括动态模板内容("fragments"),并被翻译成带有公有方法的Java类,它的符号反映了在模板中声明的参数。
JasperReports是一个基于Java的开源报表工具,它可以在Java环境下像其它IDE报表工具一样来制作报表。JasperReports支持PDF、HTML、XLS、CSV和XML文件输出格式。JasperReports是当前Java开发者最常用的报表工具。
Java Excel API(JXL)
是一个成熟,开源的Excel电子表格读取,修改,写入的项目。Java开发者利用它简单,便利的API就能够读取Excel电子表格,进行修改并能够把修改后的变化写到任何output stream中(如:Disk, HTTP, database, 或任何socket),这个项目基于GPL发布,而且对中文有很好的支持。
- 支持字体、数字、日期操作
- 能够修饰单元格属性
- 支持图像和图表
JOTM
是一个基于Java开放源代码的事务处理管理器。它遵循JTA APIs规范与Business Transaction Protocol(BTP)规范以提供了对WebService的支持。
ObJectRelationalBridge
OJB是基于XML的对象/关系映射工具.OJB提供一些高级的特性如:对象缓存,延迟加载,利用事务隔离级别的结构进行分布式管理,支持悲观与乐观锁.OJB还提供了一个灵活的配置与插件机制以便可以扩展加入自己的功能.
Jakarta POI
可以让你使用Java来读写MS Excel ,Word文件.
Quartz
是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。