thinking in java 学习笔记 11持有对象

第十一章 持有对象

 

因为最近太多事情忙了,导致没时间写blog了,不过基础知识还是不能丢下的,所以要加油,希望和我一起学java的同学也能坚持下去

 

这一章所介绍得内容就是我们平时常用的数据结构。例如表,图,栈,队列什么的,在数据结构中这些都需要我们自己去编写,但是在java或者可以说在许多语言中,为了方便我们的工作,都封装成了易用的工具类

 

.为什么要引入这个概念

在我们的编程中,往往是根据运行时才知道的某些条件去创建新对象,若需要再任意时刻,创建任意数量的对象,紧靠命名的引用是无法解决问题的,例如数组可以帮我们持有对象,但是若编写时不知道需要的对象数量呢,这时候就需要更加复杂的方式来存储对象了,在java的实用类库里面提供了额一套完整的容器类来解决这个问题,基本的类型有list,set,queue和map,这些也叫集合类

 

 

.泛型和类型安全的容器

首先一个概念的出现往往是为了觉得某一类问题,那么我们是遇到了什么问题了呢,在java5以前,允许在容器中插入不正确的类型,例如我往一个容器里面放苹果,又放香蕉,但是我拿出来的时候我需要的是苹果,但是容器里面有香蕉啊,这就是说名了香蕉不是正确类型,这就是类型不安全(若香蕉和苹果是继承关系,可以向上转型)

解决方法是?使用泛型吧,例如arraylist,这样就能方便的解决问题了,当你往里面放入的是香蕉的时候,编译器就会报错,故我们把这个称为类型安全(向上转型也可以用于泛型的)

 

 

.java集合类(容器类)的基本概念

首先,明确他们的作用,java容器类类库的用途是“保存对象”,并将其分为两个不同的概念

Collection。一个独立元素的序列

Map。一组成对的键值对对象,实际上我们很对时候都用到这个概念的

 

实际上很多时候的编程我们所编写的大部分代码都是和这些接口打交道

我们平时使用多的是向上转型

 

.添加一组元素

特别需要注意的两个方法,java.util中有一个类Arrays.aslist方法,可以接受一个数组或是一个用逗号分隔的元素列表(可以使用可变参数)并将其转化为一个list对象。

Collection.addall方法接受一个collection对象以及一个数组什么的,都可以放进去,也就是说将后面那几个数加到前面的collection去.

 

 

.Array.aslist方法的问题

array.aslist方法的限制是它对产生的list的类型做出了最理想的假设

怎么理解呢,就是其方法产生的类型不能向上转换为泛型要求的参数类型

也就是说泛型中要求的参数类型不能向上转型

 

 

以下是介绍容器类的整体大纲

 

在容器类中最重要的两个接口(即他们的共性就是)Iterator(迭代器)和Collection

 

各种的Collection类实现了iterator接口(map没有实现),故可以方便的访问

 

 

 

.List

list接口在collection的基础上添加了大量的方法

.list.Arraylist

优点是类似数组,不过是可扩展的,这个就是线性表吧,访问元素速度快,但是插入移除元素速度慢

.list.linkedlist

优点类似链表,访问元素速度慢,但是插入删除速度快,而且特性集比arraylist大,而且对用于栈与队列有很好的作用

 

方法.contains()确认某个对象是否在列表中

 

      .equals()确定一个元素是否属于某个list

 

.sublist()在大的列表中创建出一个片段

 

Collection.sort()排序

 

.retainall()保留了同时在copy和在sub中的元素

 

.toarray()转换为一个数组

 

.迭代器(Iterator)

迭代器能将遍历序列的操作与序列底层的结构分离。迭代器同意了对容器的访问方式

 

.迭代器.ListIterator

这个是只能用于list的迭代器,能够双向移动,功能很强大

 

 

 

 

.Stack

linkedlist能够直接实现栈的所有功能的方法,因此可以使用linkedlist作为栈使用

注意:可以这么写  class stack    然后在实例化的时候可以stack s=new stack();

在java.util.Stack类,占用了栈这个名字,性能不好,不建议使用

 

 

.Set

区别:Set不保存重复的元素,如果你试图将相同对象的多个实例添加到Set中,那么将会出错,查找是Set中最重要的操作,而hashset是专门对查找进行了优化

 

.Set.HashSEt

使用的是散列函数,无顺序,但是速度快

.Set.TreeSet

排序速度快,适合排序

.Set.LinkedHashSet

LinkedHashSet在迭代访问Set中的全部元素时,性能比HashSet好,但是插入时性能稍微逊色于HashSet。

 

Set接口
Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false。
Set判断两个对象相同不是使用==运算符,而是根据equals方法。也就是说,只要两个对象用equals方法比较返回true,Set就不 会接受这两个对象。
HashSet
HashSet有以下特点
 不能保证元素的排列顺序,顺序有可能发生变化
 不是同步的
 集合元素可以是null,但只能放入一个null
当向HashSet结合中存入一个元素时,HashSet会调用该对象的hashCode()方法来得到该对象的hashCode值,然后根据 hashCode值来决定该对象在HashSet中存储位置。
简单的说,HashSet集合判断两个元素相等的标准是两个对象通过equals方法比较相等,并且两个对象的hashCode()方法返回值相 等
注意,如果要把一个对象放入HashSet中,重写该对象对应类的equals方法,也应该重写其hashCode()方法。其规则是如果两个对 象通过equals方法比较返回true时,其hashCode也应该相同。另外,对象中用作equals比较标准的属性,都应该用来计算 hashCode的值。
LinkedHashSet
LinkedHashSet集合同样是根据元素的hashCode值来决定元素的存储位置,但是它同时使用链表维护元素的次序。这样使得元素看起 来像是以插入顺序保存的,也就是说,当遍历该集合时候,LinkedHashSet将会以元素的添加顺序访问集合的元素。
LinkedHashSet在迭代访问Set中的全部元素时,性能比HashSet好,但是插入时性能稍微逊色于HashSet。
TreeSet类
TreeSet是SortedSet接口的唯一实现类,TreeSet可以确保集合元素处于排序状态。TreeSet支持两种排序方式,自然排序 和定制排序,其中自然排序为默认的排序方式。向TreeSet中加入的应该是同一个类的对象。

TreeSet判断两个对象不相等的方式是两个对象通过equals方法返回false,或者通过CompareTo方法比较没有返回0 

 

 

.Map

将对象映射到其他对象的能力是一种解决编程问题的杀手锏..允许扩展至多维

重要方法

containkey()

containvalue()

keyset()

 

 

.queue

队列在并发编程中非常重要

linkedlist提供方法支持了队列的行为,所以也可以实现队列

linkedlist实现了queue的接口,可以向上转型为queue

 

.queue.priorityqueue

优先队列值得细细深究

 

.Collection与iterator

在java5中,有大量使用了iterable类型的,Collection是其中一个,

若想使用迭代,遍历,可以实现该接口

 

 

 

注意:在新程序中不应该使用过时的vector,hashtable,stack

 

 

 

 

注:java开源框架  http://www.open-open.com/49.htm

 

Spring Framework 【Java开源 J2EE框架】 
Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。 Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。【SpringIDE:Eclipse平台下一个辅助开发插件】. 

WebWork 【Java开源 Web框架】 
WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE Web框架。WebWork目前最新版本是2.1,现在的WebWork2.x前身是Rickard Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目。 Xwork简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来。 Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等。 WebWork2建立在Xwork之上,处理HTTP的响应和请求。WebWork2使用ServletDispatcher将HTTP请求的变成Action(业务层Action类), session(会话)application(应用程序)范围的映射,request请求参数映射。WebWork2支持多视图表示,视图部分可以使用JSP, Velocity, FreeMarker, JasperReports,XML等。在WebWork2.2中添加了对AJAX的支持,这支持是构建在DWR与Dojo这两个框架的基础之上.【EclipseWork:用于WebWork辅助开发的一个Eclipse插件】 

Struts 【Java开源 Web框架】 
Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。【StrutsIDE:用于Struts辅助开发的一个Eclipse插件】 

Hibernate 【Java开源 持久层框架】 
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Eclipse平台下的Hibernate辅助开发工具:【Hibernate Synchronizer】【MiddlegenIDE】 

Quartz 【Java开源 日程安排(Job Schedulers)】 
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。Quartz的最新版本为Quartz 1.5.0。 

Velocity 【Java开源 模板引擎】 
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平台下的一个辅助开发插件】 

IBATIS 【Java开源 持久层框架】 
使用ibatis 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象, 这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而ibatis 则要求开发者编写具体的SQL 语句。相对Hibernate等 “全自动”ORM机制而言,ibatis 以SQL开发的工作量和数据库移植性上的让步,为系统 设计提供了更大的自由空间。作为“全自动”ORM 实现的一种有益补充,ibatis 的出现显 得别具意义。 

Compiere ERP 【Java开源 ERP与客户关系管理】 
这一高价值的商业应用程序,易于安装、易于实施、易于使用。只需要短短几个小时,您就可以使用申购-采购-发票-付款、报价-订单-发票-收款、产品与定价、资产管理、客户关系、供应商关系、员工关系、经营业绩分析等强大功能了!功能未减,实施时间缩减到 4 小时。最重要的是:这一高价值的商业应用程序是免费的!可以自行安装和实施这套系统(如果您略懂 Oracle 和 Java 技术)。 
中文站点:http://www.compiere-china.com/ 

Roller Weblogger 【Java开源 博客(Blog)】 
这个weblogging 设计得比较精巧,源代码是很好的学习资料。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模板,RSS syndication,blogroll管理和提供一个XML-RPC 接口。 

displytag 【Java开源 Jsp标签库】 
与Struts结合使用最出名的一个tag主要是显示表格数据很漂亮、完善。 

JFreeChart 【Java开源 报表制作】 
JFreeChart它主要是用来制作各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。 

Eclipse 【Java开源 开发工具】 
Eclipse平台是IBM向开发源码社区捐赠的开发框架,它之所以出名并不是因为IBM宣称投入开发的资金总数 —4千万美元,而是因为如此巨大的投入所带来的成果:一个成熟的、精心设计的以及可扩展的体系结构。 

Liferay 【Java开源 门户系统】 
代表了完整的J2EE应用,使用了Web、EJB以及JMS等技术,特别是其前台界面部分使用Struts 框架技术,基于XML的portlet配置文件可以自由地动态扩展,使用了Web Services来支持一些远程信息的获取,使用 Apahce Lucene实现全文检索功能。 
主要特点: 
1、提供单一登陆接口,多认证模式(LDAP或SQL); 
2、管理员能通过用户界面轻松管理用户,组,角色; 
3、用户能可以根据需要定制个性化的portal layout; 
4、能够在主流的J2EE应用服务器上运行,如JBoss+Jetty/Tomcat,JOnAS; 
5、支持主流的数据库,如PostgreSQL,MySQL; 
6、使用了第三放的开源项目,如Hibernate, Lucene, Struts; 
7、支持包括中文在内的多种语言; 
8、采用最先进的技术 Java, EJB, JMS, SOAP, XML; 

JetSpeed 【Java开源 门户系统】 
Jetspeed是一个开放源代码的企业信息门户(EIP)的实现, 使用的技术是Java和XML. 用户可以使用浏览器, 支持WAP协议的手机或者其它的设备访问Jetspeed架设的信息门户获取信息. Jetspeed扮演着信息集中器的角色, 它能够把信息集中起来并且很容易地提供给用户. 
Jetspeed具有如下的特征: 

* 即将成为标准化的Java Portlet API 
* 基于模板的布局, 包括JSP和Velocity 
* 通过开放的内容同步技术支持远程XML内容交换 
* 定制默认的主页 
* 使用数据库进行用户认证 
* 内存缓存技术, 加快页面的响应 
* 通过Rich Site Summary技术, 支持同步内容 
* 和Cocoon, WebMacro, Velocity集成. 
* Wireless Markup Language (WML) 支持 
* 使用XML格式的配置文件注册portlet. 
* 完整的Web Application Archive (WAR) 支持 
* Web应用程序开发的基础设施 
* 可以在本地缓存远程内容 
* 与Avantgo同步 
* 可移植到所有支持JDK1.2和Servlet 2.2的平台 
* 与Turbine模块和服务集成 
* 可以根据用户, 安装媒体类型和语言的不同设定, 产生不同的个性化服务 
* 持续化服务使得所由的portlet能够容易的存储每个用户的状态, 页面和portlet 
* 使用皮肤技术使得用户可以选择portlet的颜色和显示属性 
* 自定义功能是的管理员可以选择portlet以及定义个人页面的布局 
* 在数据库中存储PSML 
* 通过Jetspeed的安全portlets管理用户, 组,角色和权限 
* 基于角色对访问portlet进行控制 


JOnAS 【Java开源 EJB服务器】 
JOnAS是一个开放源代码的J2EE实现,在ObjectWeb协会中开发。整合了Tomcat或Jetty成为它的Web容器,以确保符合Servlet 2.3和JSP 1.2规范。JOnAS服务器依赖或实现以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail 。 

Turbine 【Java开源 Web框架】 
Turbine是基于Servlet的框架包,也是开放源代码Jakarta项目。目前还没有关于Turbine的大量文档。它类似于Struts,但是有一些主要区别。突出的一点就是它并没有与JSP耦合。Turbine的特点是它提供了大量可重用的组件。此框架包中包含了大量组件,但是这些组件是离散的。它似乎应该给出更多的组件库,但是由于它缺少文档,所以很难掌握完整的体系结构。 

Tapestry 【Java开源 Web框架】 
Tapestry是一个开源的基于servlet的应用程序框架,它使用组件对象模型来创建动态的,交互的web应用。一个组件就是任意一个带有jwcid属性的html标记。其中jwc的意思是Java Web Component。Tapestry使得java代码与html完全分离,利用这个框架开发大型应用变得轻而易举。并且开发的应用很容易维护和升级。Tapestry支持本地化,其错误报告也很详细。Tapestry主要利用javabean和xml技术进行开发。【Spindle:Tapestry辅助开发Eclipse插件】. 

Lucene 【Java开源 搜索引擎】 
Apache Lucene是一个开放源程序的搜寻器引擎,利用它可以轻易地为Java软件加入全文搜寻功能。Lucene的最主要工作是替文件的每一个字作索引,索引让搜寻的效率比传统的逐字比较大大提高,Lucen提供一组解读,过滤,分析文件,编排和使用索引的API,它的强大之处除了高效和简单外,是最重要的是使使用者可以随时应自已需要自订其功能。 

iText 【Java开源 PDF类库】 
iText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。使用iText与PDF能够使你正确的控制Servlet的输出。 

Beanshell 【Java开源 脚本语言】 
Beanshell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性。BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。它将脚本化对象看作简单闭包方法(simple method closure)来支持,就如同在Perl和JavaScript中的一样。 它具有以下的一些特点:使用Java反射API以提供Java语句和表达式的实时解释执行;可以透明地访问任何Java对象和API;可以在命令行模式、控制台模式、小程序模式和远程线程服务器模式等四种模式下面运行;与在应用程序中一样,可以在小程序中(Applet)正常运行(无需编译器或者类装载器);非常精简的解释器jar文件大小为175k 

OpenCms 【Java开源 内容管理系统(CMS)】 
OpenCms是一个J2EE的产品,它是用Java写成的。它和Tomcat捆绑在一起。但是也能够使用ATG Dynamo、WebLogic和WebSphere。OpenCms支持多种RDBMS来保存内容,包括Oracle、SQL Server、Sybase和mySQL。新版本提供了一个新的模板引擎,JSP支持,一种新的连接管理系统,提高了稳定性。 

JUnit 【Java开源 Java测试工具】 
JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。 

opencrx 【Java开源 ERP与客户关系管理】 
opencrx很容易与你现存的系统集成 (ERP, IVR, CTI, ...)是你对你以前投资的最大保护而且openCRX支持大多数通用技术,例如 RMI, CORBA, JMS, SOAP, 以及 JCA; openCRX也包括了支持典型插件的智能前台,例如文档管理,库存跟踪, 设备管理,等. openCRX 可以运行于任意J2EE兼容的应用服务器 (e.g. JBoss, BEA WebLogic or IBM WebSphere) 和主流数据库 (e.g. MaxDB, Firebird, PostgreSQL, MS SQL, Oracle, or IBM DB2). 容易定制 基于 XML 的定制:径直的,迅速的以及可行的(包括多语言特性) 容易扩展写下你自己的工作流,或者发展可扩展的—得益于openCRX的基于组件的体系和像 J2EE,MDA 等的开放标准,这是一个很简单的任务。(摘自http://www.opencrx.com.cn/crx/) 

BlueJ 【Java开源 开发工具】 
BlueJ是一个专门为入门级教学设计的JavaTM 开发环境。它是由澳大利亚墨尔本Monash大学BlueJ小组设计并开发的。 

XWiki 【Java开源 Wiki引擎】 
XWiki是一个强大的Java开源的Wiki引擎。它支持一些受欢迎的特性如: 
* 内容管理(浏览/编辑/预览/保存), 
* 支持附件, 
* 版本控制, 
* 全文本搜索, 
* 权限管理 
* 使用Hibernate进行数据存储, 
* RSS输出与显示外部的RSS feeds, 
* 多语言支持, 
* 提供XML/RPC的API, 
* WYSIWYG HTML编辑器, 
* 导出为PDF 
* Groovy脚本支持等等....。 

EJBCA 【Java开源 网络服务器】 
EJBCA是一个全功能的CA系统软件,它基于J2EE技术,并提供了一个强大的、高性能并基于组件的CA。EJBCA兼具灵活性和平台独立性,能够独立使用,也能和任何J2EE应用程序集成。 

Laszlo 【Java开源 XML用户界面工具包】 
利用OpenLaszlo免费平台可以快速地,简单地开发漂亮Web 应用程序。这些Web应用程序可以运行在当前任何流行的浏览器与桌面操作系统。它只需要一个XML文件。【IDE4Laszlo:Eclipse下的辅助开发工具】 

JXTA 【Java开源 其它开源项目】 
Sun微系统公司公开了旨在建立P2P(Peer to Peer)通用技术基础的JXTA计划。JXTA技术是网络编程和计算的平台,用以解决现代分布计算尤其是点对点(P2P)计算中出现的问题。 
JXTA将建立核心的网络计算技术,提供支持在任何平台、任何地方以及任何时间实现P2P计算的一整套简单、小巧和灵活的机制。JXTA首先将归纳目前P2P的功能特别,而后建立核心的技术来表达目前的P2P计算的局限性。其重点是创建基本的机制,而具体的策略选择权则交给应用的开发者。JXTA将充分利用XML、Java等开放技术,使得UNIX操作系统更强大和灵活,比如利用管道(Pipes)传输Shell命令实现复杂的计算任务。JXTA支持P2P应用的基本功能来建立一个P2P系统,还将努力证实这些可以成为建立更高层功能的基础构造模块。JXTA架构可以分为三个层面:JXTA核心层、JXTA业务层和JXTA应用层。 

最近更新 


-------------------------------------------------------------------------------- 

EcSplorer 【Java开源 Eclipse插件】 
EcSplorer(Eclipse Simplified Explorer)是一个类似于 Windows Explorer的Eclipse插件,它可以帮助你在不退出Eclipse的环境下浏览本地文件系统。 

Echo2 【Java开源 AJAX开发】 
Echo2是Echo Web框架的下一代版本。一个可以用于开发基于Web胖客户端应用程序的框架。 这2.0版还是沿用Echo的核心思想但Echo2通过它新的AJAX表现层引擎提供生动的用户界面而且还提高了整体性能和实用性. 


OpenEdit 【Java开源 内容管理系统(CMS)】 
OpenEdit包括三大模块Web内容管理,电子商务,博客。Web内容管理包括在线编辑,动态布局,拼写检查(英文), 用户管理,文件管理,版本控制和通告工具。电子商务模块包括在线产品目录管理,购物车,电子付款,产品展示与产品高级搜索(利用Nutch/Lucene的web爬行与搜索功能进行高级搜索所以不需要用数据库的功能). Blog模块包括在线管理,评论,注册和RSS/Atom引擎。 OpenEdit运用到的开源组件有:Velocity,Dom4j,Spring,Lucene。 

Role Playing Tools 【Java开源 Java游戏】 
这是一个为传统角色扮演游戏提供相关工具的开源项目。当前包括的工具有:MapTool:这是一个可在C/S架构上为多个玩家提供地图与地图数据共享的图形工具。DiceTool:这是一个能够在角色扮演游戏中推测死亡表达式的工具,它还可通过JavaScripts扩展各种计算。TokenTool:方便创建MapTool标记(tokens). 


OpenToro 【Java开源 内容管理系统(CMS)】 
OpenToro是一个可以让我们以灵活和自动的方式来开发web数据库应用程序的工具.利用OpenToro可以省掉在开发一个Web数据库应用程序时编写JSP与SQL代码这样辛苦乏味的工作.利用它就可以很容易地列出数据库中的表格与其它内容并生成可以新增,修改,删除的数据.OpenToro兼容所有支持SQL-92标准语法的数据库如:MySQL,Oracle,Access,与SQL-Server. 

HtmlSave 【Java开源 Eclipse插件】 
这是一个可以把Eclipse编辑器中Java源代码或其它语言的源代码存为HTMl格式的插件。 

eZing Builder 【Java开源 Eclipse插件】 
eZing Builder是一个可以帮助你在很短的时间内开发一个J2EE或MIS应用程序的插件。它类似于PowerBuilder与Visual Web Developer ,但是它使用XQuery来访问XML-DB。 

SNMP4J 【Java开源 网络客户端】 
SNMP4J是一个用Java来实现SNMP(简单网络管理协议)协议的开源项目.它支持以命令行的形式进行管理与响应。SNMP4J是纯面向对象设计与SNMP++(用C++实现SNMPv1/v2c/v3)相类似。 

Sequoia ERP 【Java开源 ERP与客户关系管理】 
Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理,客户服务( customer service)等.Sequoia ERP采用Java开发可部署在Linux/Unix 与Windows平台上,并支持当前主流数据库如:MySQL, PostgreSQL,Oracle,Microsoft SQL Server等关系型数据库. 


jenia4faces 【Java开源 其它开源项目】 
jenia4faces是一个HTML JSF组件包.这个包主要由以下组件组成:Chart- 动态Chart生成。DataTools-DataTable扩展工具。 Dynamic- dhtml text effects。Popup-在html生成弹出式菜单。 Template-简单模板管理器。 

Tagit 【Java开源 Web测试】 
Tagit是模拟对象(Mock Objects)测试模式的一个实现。它可用于在脱离容器的情况下对自定义JSP标签进行单元测试。 

AJAX-JSF Framework 【Java开源 AJAX开发】 
这是一个利用AJAX技术并基于JSF来开发轻量级客户端的框架.它设计成可在现有的JSF组件上进行开发并最大限度的满足标准JSF Web流程. 

Ditchnet JSP Tabs Taglib 【Java开源 Jsp标签库】 
这是一个可用来开发多页选项板(Tabbed Pane)的简单标签。以下是一个Demo: 
 

 
Foo is cool! 
 

 
 
 

 


SWATO 【Java开源 AJAX开发】 
SWATO (Shift Web Application TO...)是一组可复用并且结合得很好的Java/JavaScript包.它通过AJAX来轻松转变你web应用程序的交互方式.它带的一些组件包括可以自动补全的文本框架,动态级联下拉列表,动态表单等. 

Simple Web Framework 【Java开源 Web框架】 
Simple Web Framework (SWF)是一个基于事件的web框架.它很适合于那些想要开发胖客户端Web应用程序但又不想转向JSF的Struts开发人员。SWF跟Struts一样也是构建在Jakarta commons基础之上,但使用一个不同的request processor。SWF事件模型支持基于XmlHttpRequest的事件提交。 

Taconite 【Java开源 AJAX开发】 
Taconite是一个基于J2EE的框架,可以利用这个框架来简化Ajax开发。Taconite包含一个客户端JavaScript包与一组能自动处理Ajax请求并生成动态内容的自定义JSP标签。 

Sequoia 【Java开源 JDBC驱动器】 
Sequoia是一个能够为任何数据库提供群集,负载平衡和容错服务的中间件。Sequoia是C-JDBC项目的扩展。 

RIFE/Crud 【Java开源 Web框架】 
RIFE/Crud是RIFE Web框架的一个扩展模块,它可以用给定的POJOs自动生成CRUD web应用程序。它没有生成任何文件所有的事件都是在运行期进行.利用RIFE提供的 site-structure可以把它与你应用程序的数据流与逻辑流相结合. 

Tacos 【Java开源 AJAX开发】 
Tacos类包项目为Tapestry Web框架提供一些高性能的组件,同时也为在页面或自己组件中使用的ajax框架(它当前支持的框架主要是dojo但也支持Prototype,script.aculo.us ,Rico)提供服务端Java支持。 

JSON-RPC-Java 【Java开源 AJAX开发】 
JSON-RPC-Java是一个用Java来实现动态JSON-RPC的框架. 利用它内置的一个轻级量JSON-RPC JavaScripIt客户端,可以让你透明地在JavaScript中调用Java代码。JSON-RPC-Java可运行在Servlet容器中如Tomcat也可以运行在JBoss与其它J2EE应用服务器中因此可以在一个基于JavaScript与DHTML的Web应用程序中利用它来直接调用普通Java方法与EJB方法。JSON:JavaScript Object Notation 

Jofti 【Java开源 其它开源项目】 
Jofti可对在缓存层中(支持EHCache,JBossCache和OSCache)的对象或在支持Map接口的存储结构中的对象进行索引与搜索。这个框架还为对象在索引中的增删改提供透明的功能同样也为搜索提供易于使用的查询功能。 

Yan 【Java开源 IOC容器】 
Yan是一个非侵入式的对象反转控制容器(IOC容器)。它通过宣告式的方式把简单的组件组合起来从而构建出任意复杂的组件。这些简单的组件同样也有可能是由其它更简单的组件组合而成。Yan的特点包括开放式的结构,灵活的组件组合,宣告式API和插件式的生命周期管理。Yan对依赖注入的方法没有约束,它可以对商业对象的Public构造方法进行注入,也可以对java bean getter/setter,有规则的java method,任意变量及它们的任意组合进行注入。 

Continuum 【Java开源 系统构建】 
Continuum可用于Java项目构建的持续集成,使用简单。它内置支持Maven 2,Maven 1, Ant和Shell Scripts. 

Winstone 【Java开源 Web服务器】 
Winstone是一个Servlet容器,它的目的是提供Servlet功能但没有完全采用J2EE规范.如果有时你要想的只是一个简单的Servlet容器,Winstone是一个最好的解决方案.它支持servlet2.4与JSP2.0规范. 

Eclipse 3.1.1 translations 【Java开源 Eclipse插件】 
Eclipse 3.1.1和其它Eclipse工具( Visual Editor (VE) , UML2,GEF,EMF / XSD ,WTP等)发布各种语言支持包。其中包括支持中文的NLpack1包。 
详细可查看以下网址: 
http://eclipse.org/org/press-release/20051012nlscb.html. 

下载地址: 
Windows 98/ME/2000/XP 
NLpack1_FeatureOverlay-eclipse-SDK-3.1.1.zip 
NLpack1-eclipse-SDK-3.1.1a-win32.zip 

Linux (x86/GTK 2) 
NLpack1_FeatureOverlay-eclipse-SDK-3.1.1.zip 
NLpack1-eclipse-SDK-3.1.1a-gtk.zip 

Tonic Look & Feel 【Java开源 Swing外观】 
这是Swing金属(Metal)外观的免费实现方案. 


Commons-IO 【Java开源 Apache其它开源】 
Commons IO是Jakarta Commons项目的一个子项目。用来帮助进行IO功能开发.它包含三个主要的领域:Utility classes-提供一些静态方法来完成公共任务.Filters-提供文件过滤器的各种实现.Streams-提供实用的Stream,reader与writer实现. 

Datastream Pro 【Java开源 SQL客户端】 
Datastream Pro是一个数据库"浏览器"和数据操作工具.它易于使用,可靠,稳定,操作直观。Datastream Pro支持所有兼容JDBC的数据库(已经在Oracle,MySQL,postgreSQL和HSQLDb上测试成功).利用它可以浏览与编辑数据库中的数据,可在一个友好的界面中运行与编辑SQL脚本,可使用查询编辑器来编辑SQL查询,可同时连接到多个数据库和易于使用的连接向导等。 


Viento 【Java开源 模板引擎】 
Viento是一个用Java开发的模板语言。它在语句构成上很多情形下有点类于Velocity 。 

JBoss Microcontainer 【Java开源 IOC容器】 
JBoss Microcontainer是一个轻量级IOC容器,它的思想类似于Spring,Pico Container与Plexus。JBoss Microcontainer可被用在任何应用程序中而不需要JBoss应用服务器。 它是JBoss Seam和JBoss Embeddable EJB 3.0项目的基础支柱。这里有一篇英文简介文章。 

RadRails 【Java开源 Eclipse插件】 
RadRails是一个Ruby on Rails框架的IDE。Eclipse更新站点为http://www.radrails.org/update。 


opencsv 【Java开源 其它开源项目】 
opencsv一个简单的CSV解析Java包。 

Bugzilla 【Java开源 Bug追踪系统】 
Bugzilla是一个Bug追踪系统设计用来帮助你管理软件开发。 

WebMacro 【Java开源 模板引擎】 
WebMacro是一种Java开源的模板语言。对于表现web页面,它比JSP,PHP,与ASP效率更高。WebMacro是一些大网站后台的页面生成技术。 

ECP 【Java开源 Eclipse插件】 
Eclipse CORBA Plugin (ECP)提供一个可针对CORBA IDL文件语法进行着色的编辑器。 

RDT 【Java开源 Eclipse插件】 
RDT是一个用于Ruby开发的Eclipse插件.它提供的功能包括:语法高亮显示,快速语法分析,图形大纲,单元测试,内容提示,源码格式和一个正则表达式插件等。 


Commons-Email 【Java开源 Apache其它开源】 
Commons-Email的目的是提供一组用于发送Email的API,它基于Java Mail API基础之上并进行了简化。它提供的主要Java类有:SimpleEmail:这个类用于发送简单的文本类型email。MultiPartEmail:这个类允许发送文本消息并附带附件。HtmlEmail:用于发送Html格式的附件并支持内含图片。EmailAttachment:这是一个简单的容器类用于简化附件的处理。 

UISpec4J 【Java开源 Java测试工具】 
UISpec4J是专门用于Swing应用程序单元测试的一个开源组件,它构建在JUnit测试套件的基础之上.UISpec4J让Java GUI测试变得很简单.它的特殊之处在于它的APIs设计成尽可能地隐藏Swing的复杂性,因此易于测试脚本的读与写.以下这它的简单例子: 
public void testContacts() { 
Table contacts = getMainWindow().getTable(); 
contacts.assertContentEquals(new Object[][]{ 
{"John", "12", Boolean.FALSE}, 
{"Sylvia", "43", Boolean.TRUE}, 
{"Bill", "31", Boolean.FALSE} 
}); 



e-Gen Developer 【Java开源 开发工具】 
e-Gen Developer是一个快速应用程序开发(RAD)环境。利用它能够进行Web应用程序的高产开发。e-Gen Developer完全采用Java开发并基于JSF2.8与Struts框架。e-Gen的主要目的是克服IT管理所面对的一些相关挑战如:提高开发效率,减少维护成本与减少训练团队成员所需要的时间。 

JavaGroups 【Java开源 网络服务器】 
JavaGroups是一个群组通讯工具包。它基于IP组播(multicast),但利用可靠性与群组从属关系对它进行扩展。 

UIState 【Java开源 其它开源项目】 
UIState是一个非侵入式的用户界面状态(state)管理器用于Java Swing胖客户端应用程序中.UIState允许应用程序恢复它们的GUI状态当应用程序在使用或在多个应用程序之间进行对话时.比如:假如你的应用程序使用JInternalFrame来显示MDI界面的时候,UIState将会为你管理frame的位置和大小. 

XINS 【Java开源 其它开源项目】 
XINS是一项规范技术用于定义,创建和调用远程APIs。当API规范在XML文档中定义好之后,XINS将会把它们转换成包括客户端与服务端的HTML文档与Java代码.XINS将与复杂的SOAP技术竞争,因为它被设计得具有简单性,可扩缩性与可测试性。简要地说就是:SOA+Java+XML+ 代码生成-复杂性 => XINS。 


Fujaba Tool Suite 【Java开源 UML建模】 
Fujaba Tool Suite结合UML类图与UML行为视图来提供一个强大,易于使用,而且是整齐均称的系统设计与规范语言. 而且Fujaba Tool Suite还支持从整个系统设计生成Java源代码从完美地实现了一个可执行的模型.同样也支持相反操作,因此源代码可以被解析并被表现在UML中. 


EJOE 【Java开源 网络服务器】 
EJOE是一个轻量级C/S(client/server)组件用于发送与接收Java对象通过使用外挂式的序列化(serializing)机制.EJOE提供三种功能:1.一个多线程,高性能的网络IO服务器和一个相应的客户端组件。2.序列化所有通过客户端发送的输入对象和由你商业逻辑提供的返回对象。3.提供一个简单,清晰,唯一的接口来把一个对象请求代理集成到你的应用程序中。 

JWP 【Java开源 其它开源项目】 
Java Web Parts为所有Web应用程序开发者提供了一些可以重复使用和几乎相互独立的Java组件。你可以把这个项目想象成类似于Jakarta Commons项目。JWP包括以下这些组件:AjaxTags一个标签库可以为一个页面轻松地添加AJAX 功能而几乎不用改变现存的JSP代码。DependencyFilter:这个一个简单易用并且是基于declarative(声明)模式的灵活IoC组件。此外它还包括一些过滤器(比如: CompressionFilter,SessionLimiterFilter, 
RequestRecorderFilter,AppAvailabilityFilter, 
ParameterMungerFilter等),各种用来处理Request, Response与Session的工具类与其它其它一些标签库。 

Jencks 【Java开源 其它开源项目】 
Jencks是一个轻量级的JCA容器。它可以轻松部署到Spring中以提供消息驱动的POJOs.此外Jencks通过使用类似于JMS,JAX-RPC,JBI与JCA CCI的API来提供对inbound与outbound消息的支持,同时还提供一个基于XA的JDBC连接池机制。 

Celtix 【Java开源 企业应用集成(EAI)】 
Celtix提供了一个运行期Java企业服务总线和一组可扩展的API.通过使用一个基于标准的,面向服务的体系来简化商业与技术组件的构建,集成和灵活重复使用。 


Seam 【Java开源 J2EE框架】 
Seam是一个Java EE 5框架。它通过把JSF与EJB3.0组件合并在一起,从而为开发基于Web的企业应用程序提供一个最新的模式。Seam可以让你把EJB组件直接绑定到JSF页面。Seam还可帮助你把jBPM流程定义直接地集成到你的应用程序中。 

Saxon 【Java开源 其它开源项目】 
Saxon是一个开源的XSLT与XQuery处理器. 

AjaxAnywhere 【Java开源 AJAX开发】 
AjaxAnywhere被设计成能够把任何一套现存的JSP组件转换成AJAX感知组件而不需要复杂的JavaScript编码.它利用标签把Web页面简单地划分成几个区域,然后使用AjaxAnywhere来刷新那些需要被更新地区域. 


Tapestry Palette 【Java开源 Eclipse插件】 
Tapestry Palette构建在Spindle插件的基础上.这个插件为Tapestry开发者提供了以下功能:以tree-view的方式来显示在一个项目中所用到的组件.可从tree-view拖放组件到一个页面中.可从远程以拖放的方式下载和安装组件并可直接使用.它还提供一个用于编辑组件参数的property sheet等这里有一个展示该插件功能的Flash. 

EasyEclipse 【Java开源 开发工具】 
EasyEclipse这是一个把EclipseIDE与一些关键的开源插件分类打包在一起.以使得Eclipse更易于下载,安装,使用.以下是它目前提供的分类组合. 
相应的包 
版本 日期 下 载 
EasyEclipse Core EasyEclipse 0.8.1 based on Eclipse 3.1M6 - preview 2005/6/23 下 载 
Extensions-Application Servers JBoss IDE & XDoclets support for EasyEclipse 0.8.0 - version 1.4.1 2005/6/13 下 载 
Extensions-Building/Deploying FatJar Jar exporter for EasyEclipse 0.8.0 - version 0.0.18 2005/6/6 下 载 
Extensions-Core Libraries Eclipse Tools (EMF, XSD, SDO, GEF, JEM) for EasyEclipse 0.8.0 2005/6/13 下 载 
Extensions-Databases Hibernate Tools for EasyEclipse 0.8.0 - version 3.0 Alpha1 2005/6/13 下 载 
Extensions-Editing Eclipse Colorer Editor for EasyEclipse 0.8.0 & 0.9.0 - version 0.7.1 2005/8/8 下 载 
Extensions-GUI Builders Eclipse Visual Editor for EasyEclipse 0.8.0 - version 1.0.0M4 2005/6/13 下 载 
Extensions-Language:AspectJ Eclipse AspectJ for EasyEclipse 0.8.0 - version 1.2.0 2005/6/13 下 载 
Extensions-Language:C/C++ Eclipse C/C++ Development Tool for EasyEclipse 0.8.0 - version 3.0.0M6 2005/6/13 下 载 
Extensions-MVC Web Frameworks Strutsbox for EasyEclipse 0.8.0 - version 1.0b 2005/6/13 下 载 
Extensions-Plug-in Development Eclipse Plug-in Development Environment for EasyEclipse 0.8.0 - version 3.1M6 2005/6/13 下 载 
Extensions-Utilities Regex-Regex Tester for EasyEclipse 0.8.0 - version 1.0.0 2005/6/13 下 载 
Extensions-Version Control Subclipse with JavaSVN for EasyEclipse 0.8.0 - versions 0.9.30 2005/6/13 下 载 
Extensions-Web Development Eclipse Web Tools for EasyEclipse 0.8.0 - version 1.0.0M4 2005/6/13 下载 


JBossProfiler 【Java开源 剖析工具(Profiler)】 
JBossProfiler是一个利用JVMPI系统基于log的剖析器。它使用一个C开发的代理从JVM捕获事件并把它们记录到磁盘中。一个运行在JBoss或其它机器上的Web应用程序可被用来分析这些日记。 

Yoix 【Java开源 脚本语言】 
由AT&T实验室研究的Yoix脚本语言是一个多用途的(general-purpose)编程语言.它使用C与Java开发人员所熟悉的的语法和函数.它不是一个面向对象语言,但利用超过150种对象类型来提供对大多数标准Java classe的访问.由于Yoix的解释器(interpreter)完全使用纯Java技术进行构建,因此也能够利用Yoix开发具有跨平台,网络与线程能力的应用程序,还可用于开发GUI应用程序.Yoix语言特性包括指针,寻址,声明,全局与局部变量. 

SwiXAT 【Java开源 XML用户界面工具包】 
SwiXAT是一个基于Swing的XUL框架用于快速和简化GUI Java应用程序开发.它实现了一个真正的MVC框架,其中利用XML来定义表现层(SwiXml作为XUL引擎),而BeanShell脚本语言用做控制器,并利用JXPath作为view与model之间的绑定机制. 


ICM 【Java开源 内容管理系统(CMS)】 
ICM(Instant Content Management )是一个开源的Web内容管理系统. 最终用户可以编辑自己的主页以所见即所得的方式.而web设计者有更高级的管理选项并可使用各种标准模板语言来组合一个站点. 

Connla 【Java开源 PDF类库】 
Connla是一个Java包用于创建可导成TXT,CSV,HTML,XHTML,XML,PDF和XLS等格式的数据集。 


Webcockpit 【Java开源 其它开源项目】 
Webcockpit是一个web应用程序生成器。它能够生成包含图形(使用JFreeChart 和Cewolf)与HTML表格的完整JSP Web应用程序。图表与表格的内容来自SQL查询。Webcockpit从一个XML配置文件生成JSP页面。 

Jen 【Java开源 字节码操作】 
Jen为字节码操作与生成提供一组高级API.利用它可以对Java classe进行重命名,把一个数据成员(Field)改成Public访问权限和新增一个构建函数等操作。Jen基于ASM2.1并完全支持Java5注释(annotations)与范型(Generics)。此外它还提供一组额外的工具类用于在运行期生成新的classes。 

JyDT 【Java开源 Eclipse插件】 
Jython开发工具。 

CDT 【Java开源 Eclipse插件】 
C/C++在Eclipse平台下的开发工具.它提供的功能包括:C/C++编辑器(一些基本的功能:语法高亮显示,代码编辑等),C/C++调试器,C/C++ Launcher,剖析器,内容提示,Makefile生成器等。 

EclipseWork 【Java开源 Eclipse插件】 
EclipseWork是一个用于开发WebWork的一个插件.它有很多向导用于创建WebWork Action和利用Hibernate与Prevayler来为应用程序添加增删改查(CRUD)功能.EclipseWork还能生成JSP,Velocity和Freemarker代码.EclipseWork还是一个可扩展的插件你可以编写自己的Eclipse向导而不需要了解Eclipse插件API,你所要做地只是编辑XML和用于生成代码的Velocity模板.EclipseWork将会解析XML并打开这个自定义的向导.在它主页上还提供许多Flash教程。 

FacesIDE 【Java开源 Eclipse插件】 
FacesIDE是一个用于开发JSF的Eclispe插件.它可以可视化编辑faces-config.xml文件并且提供代码编辑与校验,预览JSF的JSP文件.FacesIDE包含MyFaces来作为JSF的实现.这个插件类似于StrutsIDE. 


JDOInstruments 【Java开源 数据库】 
JDOInstruments是一个用Java开发的嵌入式面向对象数据库.它还实现了Sun的JDO规范用于Java对象的透明持久化.它可运行在windows2000, windows2003 64bits,和Linux(Fedora Core2)平台上. 


EPIC 【Java开源 Eclipse插件】 
EPIC是一个开源的Perl开发工具.支持语法高亮显示,快速语法检查,内容帮助,perldoc支持,源码格式,模板支持和一个Perl调试器. 


GeoAPI 【Java开源 其它开源项目】 
GeoAPI为OpenGIS规范提供一组Java接口。 

FINA 【Java开源 其它开源项目】 
FINA是一个三层J2EE应用程序用于从一些金融机构(如银行,投资公司等)接收数据,然后把数据存储到DB (Oracle/MSSQL/DB2)数据库中并生成相应的报表. FINA是一个完全可定制的和综合的强大报表设计器. 

XSM 【Java开源 内容管理系统(CMS)】 
XSM(eXtensible Site Manager)下一代的web网站管理系统。它能够让用户轻松地在线管理它们的网站,并同时在服务器上维护一个静态的网站。 

QOLdap 【Java开源 Eclipse插件】 
QOLdap是一个Eclipse平台下LDAP目录浏览器. 

JDots 【Java开源 其它开源项目】 
JDots(Java Dynamic Object Tree System)是一个很小的Java包,它能够让Java开发者构建一棵Java对象树,这些对象之间还可互相通信.一个对象可以发送一个方法调用到它的父节点或子节点对象.参数只能是可包含任何数据格式的TagLists类型. 

MiddlegenIDE 【Java开源 Eclipse插件】 
MiddlegenIDE是一个Middlegen在Eclipse下的插件,它可生成映射文件,JavaBean源码,配置文件和导入相关的jar.而你所要做的只是配置好数据库连接信息和选择要生成映射文件与Java类的数据库表.MiddlegenIDE当前版本只支持生成Hibernate映射文件与JavaBean源码. 

Stripes 【Java开源 Web框架】 
Stripes是一个视图框架用于利用最新的Java技术来构建Web应用程序.它具有以下特点:不需要对每一page/action进行映射配置(ActionBeans将自动被发现,它利用注释进行配置),强大的绑定引擎用于构建复杂并脱离请求参数(request parameter)的web对象,易于使用并可本地化的验证与类型转换系统.可重复使用ActionBean作为视图帮助类.支持一个form对应多个事件.透明的文件上传能力.支持持续开发(比如在构思你的ActionBean之前可以先构建与测试JSP)等. 

Flow4J 【Java开源 工作流(Workflow)】 
Flow4J是一个可在Eclipse平台下以拖放的方式进行工作流建模的插件.一个工作流程可包含许多流程步骤(在该项目中叫作flowlet),然后这些步骤可接连在一起组合成复杂的流程.所有流程将包含以下两种类型的flowlet:Control Flowlets如开始,判断与跳转Flowlets这些将在Eclipse中配置.另一种类型是Task Flowlets:它是一个包含特定任务的Java类,包含的功能可以是任何事件的如EJB调用或JNI调用,这些任务还可用一些脚本语言如Jython,Groovy,JavaScript等来进行开发.当在Eclipse中设计完这些流程之后,所有流程的Java源代码将自动创建. 


Crispy 【Java开源 Web服务】 
利用Crispy提供的一个统一接口,你可以调用RMI,WebService,REST,XML-RPC,EJB,Burlap,Hessian等其它服务.你不需要知道这些服务是怎样工作的,要调用的服务类型可在properties文件中定义.远程调用就像简单Java对象调用一样,你可以把Crispy集成到一个SOA(Service Oriented Architecture)或RCP(Rich Client Platform)中. 

XRadar 【Java开源 项目管理】 
这是一个软件开发状况(包括版本,时间,测试,效率,程序代码等等)分析工具. 它会将其绘制成图表来分析,并可以以时间轴输出HTML/SVG报表. 

XMoon 【Java开源 Web框架】 
XMoon扩展自Jakarta Struts框架用于开发处理基于XML或一些脚本语言(如: BeanShell, JRuby, JudoScript, Jython,Rhino)的Web应用程序.它还提供一个用于展示该框架宠物店Demo. 


Voice Tools project 【Java开源 Eclipse插件】 
它为JSP/J2EE领域中的Voice Application提供一组基于Eclipse的开发工具. 

Red-Piranha 【Java开源 搜索引擎】 
Red-Piranha是一个开源搜索系统,它能够真正"学习"你所要查找的是什么.Red-Piranha可作为你桌面系统(Windows,Linux与Mac)的个人搜索引擎,或企业内部网搜索引擎,或为你的网站提供搜索功能,或作为一个P2P搜索引擎,或与wiki结合作为一个知识/文档管理解决方案,或搜索你要的RSS聚合信息,或搜索你公司的系统(包括SAP,Oracle或其它任何Database/Data source),或用于管理PDF,Word和其它文档,或作为一个提供搜索信息的WebService或为你的应用程序(Web,Swing,SWT,Flash,Mozilla-XUL,PHP, Perl或c#/.Net)提供搜索后台等等. 

Logisim 【Java开源 其它开源项目】 
Logisim是一个教学工具用于设计和模拟数字逻辑电路. 


xalan 【Java开源 XML解析】 
xalan-java是一套xslt处理器,用来将XML文件转换为HTML,TEXT和XML等其他类型文件格式。支持XSLT1.0和XPATH 1.0版。开发人员可以通过命令行方式或在JAVA APPLET和SERVLET中使用,并可以作为自己开发的应用程序的类库使用。xalan-java实现的是transformation API for XML(TRaX)接口,此接口为jaxp1.2标准中的一部分。 

Java SNMP Package 【Java开源 网络客户端】 
这是一个实现了SNMP协议的Java包.它提供对基本的SNMP客户端与在SNMP版本1和2中定义的代理操作的支持.这个包提供了一种机制用于取得与设置SNMP对象标识(OID:object identifier)值通过一个简单的通信接口并可用于描述SNMP结构等. 

Cobertura 【Java开源 Eclipse插件】 
Cobertura是一个基于jcoverage的免费Java工具,它能够显示哪一部分代码被你的测试所覆盖,并可生成HTML或XML报告. 

Jeceira 【Java开源 内容管理系统(CMS)】 
Jeceira是一个实现了JSR 170规范的内容管理系统. 

JBWIKI 【Java开源 Wiki引擎】 
一个JBoss实验室项目用于创建符合JSR 168规范的Wiki.它已被用于增强JBoss Portal项目。 

Woodstox 【Java开源 XML解析】 
Woodstox是一个快速开源且符合StAX(STreaming Api for Xml processing)规范的XML处理器(做为一个处理器意味着它可以处理输入(相当于解析)与输出(相当于写入,序列化))。 

Jiplet Container 【Java开源 网络服务器】 
Jiplet是Java SIP Servlet的简写,Jiplet Container是一个开源的服务端SIP应用程序容器.Java开发者可以利用Jiplet API来开SIP应用程序并把程序部署到Jiplet容器中.SIP (Session Initiation Protocol)被广范用于通过互联网提供电话服务.这个容器为开发,部署和运行SIP应用程序提供了一个类似于Java Servlet的开发与运行环境.它的许多特性都非常类似于Java Servlet容器包括支持servlet映射(servlet mapping),范围变量(scoped variables),上下文处理(context handling)等. 另外还有一个用于测试SIP应用程序的开源项目SipUnit 

Tudu Lists 【Java开源 项目管理】 
Tudu Lists是一个日程(todo list)管理J2EE应用程序.它基于JDK5.0,Spring,Hibernate,和DWR AJAX框架.Tudu Lists同样也是一个简单但实效的项目管理工具. 


jCookie 【Java开源 其它开源项目】 
jCookie是一个免费,开源的Java包用于Java客户端cookie处理.客户端HTTP状态管理(或cookie处理)对于那些需要与Web应用程序如email或在线银行服务进行交互的Java应用程序是非常重要的. 

MrPostman 【Java开源 Email客户端】 
MrPostman是一个email网关,它使你能够直接从自己喜欢的Email客户端(如: Outlook Express,Thunderbird等)访问Yahoo Mail,Hotmail,gmail(Google mail)和其它webmail服务.它被设计成可扩展,因此可以很容易地添加更多的web mail服务.MrPostman还支持RSS新闻简读. 

Deep Network Analyzer (DNA) 【Java开源 网络服务器】 
Deep Network Analyzer(DNA)是一个灵活的,可扩展的深度网络分析器(服务器软件)与框架,它可收集和分析网络数据包,网络对话(sessions)与应用层协议(HTTP,DNS,P2P,VoIP等),被动地隔离企业级网络.DNA主要设计用于Internet安全,入侵探测,网络管理,协议与网络分析,信息搜集,网络监测应用程序

 

 

 

java 美女11

你可能感兴趣的:(java,编程思想学习)