A. php版本选择问题.VC6和VC9的区别,TS和NTS如何选择
TS是Thread Safety,代表线程安全,而NTS是None Thread Safe代表非线程安全。
Windows系统下才分线程安全与非线程安全,
windows + Apache + PHP(模块) :使用线程安全版本。
windows + Apache + PHP(FastCGI) :使用非线程安全版本。
如果你的电脑是32位的, 那装x86的版本,如果是64位的, 装x64的版本!
一般来说不区分32位和64位,或者64位操作系统兼容32位的PHP,但是在某些操作系统上还是区分32位和64位的,例如windows 2008。
vc6和vc9是指vc运行库的版本,你PHP版本标志的是VC9,那么运行的时候,需要安装vc9
VC9 -是安装运行使用 Visual Studio 2008 生成的 C++ 应用程序所必需的运行时组件。
这篇教程文章里提供700多个PHP版本下载。(700个PHP版本一键切换)网络搜索这个文章标题:PHP集成环境如何自定义PHP版本,同时运行多个php版本一键开启模块。搜到的文章中,在文章的附件里有提供PHP历史版本下载,差不多700多个PHP版本,最老和最新版本都包含了。如果你找不到,就找原文吧,因为你搜到的文章可能是被其他网站转载的。
建议使用PHPWAMP绿色集成环境,700个PHP版本随意切换,多版本同时运行。
(网络搜PHPWAMP有详细的使用教程,能同时运行多个PHP版本,一键去端口等)
B. 64位操作系统是什么
现在,Windows XP 64 Professional x64 Edition(以下简称Windows XP 64)已经正式推出,和32位的Windows XP相比,它有哪些显著的变化呢?它能顺利支持32位应用吗?普通用户现在可以升级到Windows XP 64吗? 跨入64位之路 “位”,简单地理解就是CPU的寻址空间。在计算机技术的发展史上,位的演变起到了举足轻重的作用。从1971年的4位计算到如今已来临的64位计算时代,经历了漫长的演变过程。 1978–1995年:16位大行其道 1978年,Intel推出了首颗16位CPU–8086。在此期间,操作系统走过了16位的PC-DOS、MS-DOS、CP/M-86、UCSD Pascal P-System,MS-DOS开始成为个人计算机操作系统的霸主,直到今天,DOS在Windows系统维护中仍然扮演着重要的角色。值得我们怀念的是,那时国人的电脑上几乎没有不安装WPS For DOS(早期的文字处理软件,相当于现在的 Word)的,为计算机在我国办公领域的应用打下了坚实的基础,同时,国人也成功地开发出了中文DOS系统,如CCDOS等。 1985年,微软推出了Windows 1.0,之后又陆续推出了Windows 2.0、Windows 286、Windows 386,但由于性能平平而没有得到人们的注意。直到1990年5月,微软推出了Windows 3.0,加入了许多有用的功能,并首次加入了多媒体功能,被舆论称为“多媒体的DOS”。Windows 3.0一经面世,就取得惊人的成功,一举奠定了微软在操作系统上的垄断地位。 1995年至今:从16位到32位的飞跃 1985年Intel推出了首颗32位处理器80386。在此期间,1995年8月,微软推出了Windows 95,称为操作系统发展史上一个里程碑。从Windows 95到Windows 98/ME,都是混合16/32位计算的操作系统,并不是纯32位操作系统,稳定性和性能方面虽比过去得到了较大的提升,但仍不能满足人们对计算机应用的需要。 2000年,微软推出了Windows 2000,开辟了个人桌面32位计算与应用的新时代。2001年发布的Windows XP成为目前使用率最高的操作系统。 32位计算时代最成功的应用就是多媒体和Internet,32位的Windows平台上涌现了很多之前只能运行在SGI等大型图形工作站的应用程序,如3DMax、Photoshop等,人们不再为这些多媒体创作而购买极其昂贵的图形工作站,日益成熟的32位计算开辟了PC担任多媒体应用工具的新纪元。 2005年:64位即将君临天下 今天,64位计算平民化的时代即将来临。和以前8位向16位跃进、16位向32位跃进耗费十几年的情况不同, 64位CPU推出没几年,就出现了64位的Windows XP和64位的Windows Server 2003。微软称,64位的Longhorn也将于2006年发布。 除此之外,与个人桌面系统同步的还有服务器系统,如Windows NT/Server 2000/Server 2003等,就在微软发布64位Windows XP的同时,也发布了64位Windows Server 2003。至今,还可从微软网站注册并下载64位的有120天限制的Windows Server 2003。 为什么需要升级到64位 如前所述,随着多媒体功能的渗入和硬件价格的日趋平民化,越来越多的人加入到PC应用的行列,造就了一大批进行家庭多媒体创作等应用的非专业人士,很多人不再满足于用电脑打字、作表格、上网聊天等简单应用。随着人们对电脑要求越来越高,32位系统已力不从心,于是64位CPU和64位操作系统先后出炉。在操作系统方面,经过充分的准备(包括前段时间微软推出的免费下载试用),微软终于在今年4月25日推出了具有重要意义的64位Windows XP和64位Windows Server 2003。 按微软官方的说法,Windows XP Professional x64 Edition的设计初衷是满足机械设计和分析、三维动画、视频编辑和创作以及科学计算和高性能计算应用程序等领域中需要大量内存和浮点性能的客户的需求–这些应用都需要高性能和大内存的支持。 64位与32位Windows XP相比的一大特色就是能提供大内存的支持。当前,32位Windows能支持最多4GB的系统内存,每个处理器可最多使用2GB专用内存。而Windows XP Professional x64 Edition当前支持多达128GB内存,随着硬件功能的增强和内存大小的增加,有可能支持多达16TB(1TB=1000GB)的虚拟内存。其它数据请见下表: 再从个人桌面系统用户的角度来看,内存容量的限制只是体现64位计算技术优势的一个方面,大量数据处理才是64位计算真正发挥功效的地方。PC已经不仅仅是用户计算的工具,它更是“多媒体”中心,很多这方面应用是32位计算根本无法满足的。如在家用领域,32位无法实现高保真的声像,甚至无法完成20分钟视频的播放和编辑;在建筑、游戏设计领域,32位计算无法完成大量的数据计算和处理;在互联网上,32位计算无法实现大量的各种类型的数据搜索–这些应用都需要64位计算来实现。 64位Windows XP的安装 要说明的是,64位Windows XP只能在64位平台上安装,因为安装程序在安装之前会对系统进行检测,如果检测不到64位CPU,操作系统将中断安装过程 现行的64位Windows XP还只有英文版,加之对新系统的不熟悉和新系统的兼容问题,目前国内32位系统依然占据主流。可能很多读者首先想到的是多系统,保留原32位Windows XP,用光盘启动,将64位Windows XP安装到另一分区或原系统分区的另一目录下,不过这种做法存在严重的兼容性问题。兼顾以上种种理由,笔者推荐大家采用独立多系统法。 步骤1:用DOS版的分区软件在硬盘上划分出两个主分区,扩展分区任意。主分区可以有多个,但只能有一个处于活动状态,另一主分区将自动处于隐藏状态。为方便后面的叙述,现设两主分区的卷标分别是Win32和Win64。 步骤2:用分区魔术师使Win32分区处于活动状态,正常安装32位Windows XP。安装时一定要让另一主分区处于隐藏状态。 步骤3:用分区魔术师使Win64分区处于活动状态,同时隐藏Win32分区,在Win64分区下安装64位Windows XP,安装方法与简体中版的32位Windows XP没什么两样。 注意:在一个主分区下安装系统时,一定要让另一主分区处于隐藏状态,独立多系统成败的关键全系于此。以上安装法只是一种思路,也可通过调整原系统分区大小将其分割一块出来,再将分割出来的部分建成主分区以安装64位Windows XP。 步骤4:多系统的切 在任一系统下安装完全版的分区魔术师8.0,在其安装目录下找到以下两个文件:pqbw.exe和pqbw.rtc,再将其拷贝到任一扩展分区的一个新建目录下 提示:在64位Windows XP下,分区魔术师的安装目录默认是“C:Program Files (x86)PowerQuestPartitionMagic 8.0”,在32位Windows XP下是“C:Program Files PowerQuestPartitionMagic 8.0”。如果不是完全版的,可能找不到以上两文件。 双击pqbw.exe,显然,两个主分区都已被软件识别出来了。从“Status:”下可看出,Win32分区处于活动(Active)状态,该分区下的操作系统处于运行状态,如果此时单击选中另一分区即Win64,同时选中“Restart Now(马上重启)”,再单击OK,当前系统会立即关闭并重新启动到64位Windows XP下。由于这两个文件已拷贝到扩展分区,所以无论启动到哪一系统下都能找到并运行它。 由于只能有一个主分区处于活动状态,另一分区默认地处于隐藏状态,不管启动到哪一系统下,都只能有一个主分区的盘符被分配为C盘,后面的扩展分区在磁盘管理器下显示为D盘、E盘等,可共享扩展分区下的数据。如果为维护方便,手动将两分区都设置为非隐藏状态,也只能启动到活动主分区上的操作系统,另一主分区的盘符将排到扩展分区之后。 IT.COM.CN 掀开64位的底牌 1992年2月,COMPAQ公司在业界首推名为Alpha的64位中央处理器,主频创记录地达到了200MHz。而SUN公司的UltraSparcIII、IBM公司的Power 5以及Apple公司的G5等面向64位计算的处理器也纷纷出台,Intel也早在2001年就与HP合作开发了基于IA-64架构的Itanium处理器。如同一种产品在市场上获得普及而非由少数用户拥有的时候,我们才能真正将其列归主流一样,只有当64位技术为个人用户广泛应用的时候,我们才能够认为64位时代真正来临。随着AMD在全球抢先投放其面向个人用户的64位处理器开始,Intel在一年之后也以自己的64位处理器回应,从而真正拉开了64位计算时代的大幕。 X86平台64位处理器大事记: ★2003年4月22日,AMD发布了基于AMD64技术的Opteron处理器。该处理器即是AMD一直以代号“大锤”进行研发的项目产物,可以同时兼容64位和32位应用。 ★2004年2月的IDF 2004上Intel正式展示了其代号为Nocona的64位至强处理器,同年8月4日,面向个人电脑的64位处理器Pentium 4 F推出。 ★2004年10月5日举行的微处理器论坛,威盛电子公布了其代号为Isaiah的64位处理器,该处理器将于2006年上半年投产。 64位时代的5道门槛 随着Intel全面发布了自己的64位中央处理器,我们已经可以感受到64位时代的呼吸了。但是现在就开始欢呼雀跃似乎为时尚早,系统平台的过渡通常并非坦途。远的按下不表,单说16位向32位的过渡,也是在兼容16位应用的前提下经过了多年的发展才逐渐确立了32位应用的主流地位,并一直演化出32位一统天下二十年的大好江山。如今64位想重复32位的老路,颠覆32位的统治地位,无疑将面临很多阻挠。我们就来看看在向64位时代迈进的道路上,需要跨过哪些门槛。 门槛1:硬件驱动问题 现在AMD和Intel已经开始在市场上大量投放64位处理器,而其他一些个人级处理器厂商也在积极动作。但是一台计算机并非只有一个处理器就能运行,它还需要大量周边设施的辅助。由于目前进行过的所有测试都表明在64位操作系统中运行64位应用程序比运行32位应用程序要更加高效,所以用户也应该尽可能在自己的操作系统中安装64位的驱动程序。而且根据从微软获得的信息,32位的驱动程序是无法在64位Windows操作系统中使用的。 现在硬件产品多如繁星,不可能所有的产品都具备64位驱动程序供用户使用。目前单就主板来说,市场上就有成百个品牌在供应产品,而能够生产其他配件的厂商更是数不胜数。相对较大规模的厂商具有比较良好的技术研发能力,而一些依靠降低成本价格进行竞争的小厂商就很难保证附属程序的研发了。在这种情况下,相对实力较弱的厂商通常会使用元件附带的公版驱动,甚至根本不提供经过验证的与产品匹配的驱动。所以在使用64位硬件平台的用户,应该特别注意自己现在购买的硬件是否带有针对64位平台的驱动程序。并且在可能的情况下,尽量选择大厂的产品,以免无法充分发挥硬件设备的性能。 在新购设备这一方面问题还不是特别严重,对于我们之前购买的设备来说问题可就没那么轻松了。毕竟很多用户只通过更换主板和处理器进行升级,而非购买整套配件进行升级或者购买整机。一般相对核心的部件对于这个问题受到的影响较轻,而外设型的设备所受波及就更加严重,例如打印机、扫描仪等。现在有大量的用户仍在使用几年前购买的打印机,甚至某些产品的型号已经投产了超过5年的时间,有成百万的用户。在这种情况下,硬件厂商的责任不仅仅在于为新产品搭配64位驱动程序,而且还要考虑为所有仍在使用的旧有机型开发64位驱动程序。 在很多情况下,我们只能更多的寄希望于所使用的64位操作系统包含了正在使用设备的驱动程序。不过相信会有相当多的用户要为此烦恼。全球的硬件厂商都应该加快脚步,为他们的产品提供各种平台的64位驱动支持,这也是64位硬件大范围普及的一个重要前提。目前已经有一些厂商走在了前面,例如罗技已经表示在今年6月份推出其产品的64位驱动程序,尽管其大部分设备不使用驱动也可以很好的在64位操作系统下使用。 门槛2:缺乏应用程序 除了硬件方面的问题之外,应用程序方面的情况也不是特别乐观。虽然现在很多32位的应用程序都可以使用兼容模式运行在64位模式下,但是总体来说,64位应用程序仍处于严重缺乏的境地。我们就目前已经确认的信息,来概览一下重要软件的64位版本情况。 Office办公套件 占有市场统治地位的微软Office套件正在筹划64位版本,在32位版本的Office 12推出后将很快推出64位版本的Office 12。但是据目前的情况看来,Office 12的推出时间很可能会是2006年的年中或者年末。届时微软不但面临着Office套件64位化的问题,还需要进一步将Office与其它的微软系统整合以及推出更多新功能,因为Office 2003版本相对前面版本的Office改进太少已经为不少激进的用户所诟病。 开放源代码的Open Office套件虽然没有明确推出64位的版本,但是在64位Linux操作系统上确实可以正常的运行该办公套件。我们认为开源的套件对于64位的支持应该相对比较简单,因为我们可以很容易的自己进行编译和部署套件的工作。 服务器软件 Web服务器方面,除了Windows服务器系统自带的IIS之外,另一个主要的Web服务器软件Apache也提供了自己的64位版本,但是目前还没有看到Apache在Windows平台上有64位版本发布。就运行速度而言,64位的Apache在同等级别的硬件平台上相对于32位的Apache有一定的提升。而且我们相信64位技术会给Apache的性能带来更大的收益,毕竟Web服务器软件对内存的要求是相当高的。 数据库服务器方面,微软的SQL Server已经提供了64位支持。在2005年的5月,微软发布了SQL Server的SP4补丁包,使用该补丁包用户将能够在64位平台上运行基于SQL Server的应用程序。支持64位X86硬件平台的64位商业数据库还包括IBM的DB2和Oracle。而MySQL,这个最流行的开源数据库系统,更是早在2004年初就已推出了基于HP-UX和Itanium 2处理器的64位版本,其对64位平台的支持还是相当全面的。相对来说,数据库服务器对64位技术的支持是相对较好的,毕竟数据库应用需要海量的存储空间。 工具软件 目前工具软件厂商还很少推出专门针对64位平台的版本,但是在微软64位操作系统上,影音播放、图片浏览、文件下载等常用的32位工具软件都能够较好的运行,而对于Linux等将应用程序打包发布的操作系统,各种工具软件也能够正常工作。 以上只是描述了很小一部分软件的64位版本应用情况。综合来看,大部分软件厂商还没有推出针对64位平台的产品版本,所以说目前可供用户使用的纯64位应用还非常稀缺。大家可以查询所需使用软件的官方网站,进一步了解64位版本的发布情况。 门槛3:兼容性问题 从32位到64位,如何能够平稳的完成又一次计算平台的巨大变迁?回首历史,X86架构经历了8位到16位、16位到32位等数次变革。离我们最近的一次也是影响最深远的一次就是从16位到32位的平台转换。在这次影响久远的过渡之中,我们的主流中央处理器由286演变为极具变革意义的386,PC开始成为信息时代舞台上的主角。 因为在当时16位应用居于统治地位,硬碰硬式的革命即使成功也会损失惨重。所以X86架构处理器的生产商极为明智的选择了一条兼容16位处理器,逐步推广32位处理器的发展路线。当兼容16位应用的32位处理器上市之后,用户惊喜地发现这种处理器同样能够非常顺利地运行16位应用程序,而且其运行速度大大超过当时的16位处理器。在这种情况下,购买新机的用户当然对性能更好而且还能够在未来运行32位应用的32位处理器情有独钟,并且带动了大量准备升级计算机的用户投向32位阵营。 正确的策略赋予了32位变革足够的初始动能,当雪球越滚越大之后,终于使32位接替16位成为必然。在此期间,信息产业中的各个行业获得了充分的时间使自己向32位技术进行过渡,这一方面保证了过渡的平稳,另一方面也为32位技术打下了扎实的根基。值得一提的是,在这个迁移过程的同时,还出现了一种被称为RISC的架构。 平心而论,RISC架构从技术层面要比X86架构更加优秀。但是由于与占据了极大市场份额的X86架构不兼容,所以无法被大众所接受,越来越被挤向高端市场,最终成了一种曲高和寡的技术。从这段历史我们不难看出,在发生深层次技术平台迁移的时候,往往由于涉及面过广,而无法迅速的完成转变。只有很好的顾及旧有系统的价值,以自然的方式平稳地引发需求,才能获得最大限度的成功。 历史总是惊人相似,我们相信32位技术向64位技术的转化也是如此。AMD也是选择了在64位技术的基础上兼容32位技术的战略,从这一年多的市场反应来看可以充分说明AMD的睿智。微软也顺应时势的在64位Windows XP中集成了WOW(Windows-32-on-Windows-64)子系统,用于提供32位应用与64位应用的兼容。现在剩下的问题就是,目前这些主力厂商所提供的兼容性,是否能够满足应用的要求呢?我们在个人用户最常用的Windows平台下针对兼容性问题进行了一系列的实验,大家可以根据实验的结果得出自己的答案。 在我们的测试中,下列程序可以正常的在64位Windows系统中工作,没有发现任何问题: 文档处理 Microsoft Office 2000/2003、Adobe Acrobat 7.0、UltraEdit 11 图像处理 Adobe Photoshop CS、Paintshop Pro 9、CorelDRAW 12;Firework MX 2004 三维制作 3D Studio Max 6、Maya 6.5 光盘处理 Ahead Nero 6、Ultra ISO 7、MagicISO 网页制作 Dreamweaver MX 2004、Flash MX 2004 网页浏览 Firefox 1.2、Opera 8 媒体播放 Media Player Classic、Power DVD 6、Quicktime 6.5 系统工具 Partition Magic 8、WinAce v2.6、JRE 1.5;VMWare 5 即时通讯 MSN Messenger 7.0、ICQ 5 文件下载 eMule 4.6a 游戏软件 魔兽争霸3;星际争霸 第二个部分是能够完成基本的工作但是存在一些问题的软件。 WinRAR 3.5和Winzip 9.0都可以正常工作,但是问题在于右键菜单中的快捷选项无法正确加载。我们估计原因在于这些加载项只能工作在32位的Explorer环境中,估计其它利用该技术修改右键菜单的软件也会受到影响。另外,一些老版本的Acrobat程序需要使用32位的驱动程序,所以不能使用打印PDF文档的功能。另外我们还发现,在安装Office 2003 SP1的时候会显示一组错误消息,但是对使用不造成任何影响。 无法工作的应用软件: 所有使用32位底层驱动的软件无法顺利的在64位操作系统中。大部分32位防病毒软件都应用Windows底层驱动进行病毒监控,所以都无法正常工作。个人防火墙软件也是如此,例如Zonealarm和Sygate的防火墙软件就无法在64位系统下工作。而我们能够找到的所有虚拟光驱软件都无法执行。 一个让我们比较意外的情况是微软的Virtual PC 2004虚拟机软件也无法在64位Windows上运行,要知道他的主要竞争对手VMWare可是能够运行的,可能是Virtual PC对Windows的底层进行了一些调用。还有很多微软的套件无法在64位Windows下运行,希望微软尽快推出64位版本吧。 门槛4:开发工具问题 64位应用软件的缺乏,同样需要开发工具厂商的投入。只有64位开发环境达到了足够的成熟度,程序员才会有学习64位环境软件开发的热情。64位处理器的字长从32位提升到64位,使内存地址范围大量扩充,内存的容量、处理速度和精度等指标随之大幅提升。在32位系统下,一旦数据处理量及会话连接突破一定界限之后,就非常容易出现系统崩溃。所以在高端应用领域,一直是64位系统的天下。 Intel虽然在高端推出了安腾处理器,但是由于所能运行的应用软件相对较少,一直没有能够有效地占据市场。如今X86架构的处理器开始投放市场,所有立足于X86架构的厂商当然希望用户可以继续有丰富的软件可用。想要在64位平台上开发软件,首先要有完善的编译器软件。因为目前绝大多数主流的高级编程语言都是编译式的,如果没有高质量的编译器,就很难开发出性能优异的软件程序。 以C语言编译器来说,除了可以从Intel这样的处理器厂商处获取之外,还可以使用GCC提供的开放源代码的64位版本编译器。 凡事总有例外,并不是所有的主流开发平台都是基于编译技术的,例如java。Java也会将源代码编译为可在虚拟机中执行的字节码,但是由于Java并不针对处理器指令集编译生成平台本地化的代码,所以在严格意义上不应将其划归为编译性语言。在使用虚拟机技术的编程平台中撰写的源代码,是不受平台限制的。以Java为例,在32位平台下生成的字节码是可以直接运行在64位平台上的,只要运行的环境中安装了版本匹配的Java运行时环境(JRE)。 另外,Java开发平台为了实现在不同字长环境中运行Java程序,对数据类型也做了相应的处理,程序员并不会为这些问题花费太多的心思。谈到开发我们无法忽略微软的存在,毕竟全球大部分计算机都在运行微软的操作系统。由于微软现在主推的.NET计算平台使用了和Java类似的技术,所以严格来说从32为转换到64位对.NET程序也没有什么影响。我们需要关注的只是微软的操作系统是否足够完善以及他们什么时候才会发布完整的开发库支持。 现在微软已经发布了Visual Studio .NET 2005的Beta版本,据称这款微软最新的开发工具中提供了64位开发的更多支持。这两个开发平台所具有的这种特性对程序员具有相当的吸引力,因为这意味着程序员可以使用同样的知识基础同时为不同的系统平台开发程序。而且这对企业移植应用程序带来了巨大的便利,如果企业选择的开发环境是Java或者.NET的话。这从侧面说明了为什么Java和.NET是企业级开发市场的主宰力量,选择了投入这两个阵营的企业现在一定会满意自己的决策。 门槛5:实施成本问题 IT行业一个常用的衡量尺度是TCO,即总体拥有成本。这个衡量方式的主要原则在于我们在实施IT设施的时候不但要考虑显性成本,同时也要重视隐性成本。以32位向64位迁移来说,隐性的成本包括了对原有设备的影响、用户知识结构的变化、不同平台的整合以及程序移植等等。应该说目前X86架构的64位系统从一定程度上解决了这些问题。 AMD从最开始就选择了兼容32位应用的策略推广其64位处理器,而Intel在百般权衡之后,也尾随AMD的脚步走上了同样的道路。在这种情况下,32位和64位的平台过渡工作将省却很多麻烦。但是尽管有这些有利条件,平台过渡仍是一个非常巨大的工程,会涉及到组织的方方面面。这就需要所有参与其中的人与过渡工作紧密配合,如果没有积极的态度和严谨的心态,会带给IT设施的运作造成无可估量的损失。 另外,我们在注重TCO的同时,也不能忽略系统的扩展能力。就是说,我们不但要注重短期的效益,还要估算长期的利益。只将目光集中于眼下的成本节省,代价很可能是在将来付出更大的成本。特别是在相对大型的计算环境中,一定要制订好详细的迁移计划,评估各种应用的重要性等级和对64位系统平台的需求,开展足够的培训和教育工作,这样才有可能成功的完成32位平台向64位平台的过渡。 64位硬件的安全轴心 64位技术的普及化,除了能够带给个人用户性能方面更好的体验之外,还提供了更多创新的空间。我们现在就来看看对于个人安全防护来说最重要的防病毒和防火墙功能,64位硬件平台给了我们怎样的答案。 64位处理器的防毒功能 在传统的防病毒领域,我们大多使用防病毒软件处理计算机病毒问题。AMD推出的64位处理器都提供防病毒功能,而Intel不只在64位处理器中集成了这样的功能,其很多32位处理器也可以提供防毒功能。两者内置的防病毒技术都是使用被称为NX bit的一种防止内存溢出的机制来实现的。 我们知道,目前的大部分恶意攻击都是利用某种方式使目标机器执行攻击者想要执行的代码,而这通常是由内存缓冲区溢出的形式来完成的。以近年来大肆传播的网络蠕虫病毒来说,其主要的感染行为就要依赖这种技术。所以在理论上,如果我们能够防止发生内存溢出,就能大大降低系统的安全威胁。NX bit就是针对这类问题所推出的解决方案。 抛开技术实现的细节不表,NX bit是通过怎样的机制完成工作的呢?非法的内存溢出通常在数据中植入了可执行的代码,这些恶意代码在溢出时会被推入执行队列。NX bit在映射内存的物理地址和逻辑地址的管理机制中添加NX位,当CPU提取指令的过程中,一个生效的NX位被执行的话操作系统将会收到报错。利用这个机制操作系统可以将不应执行的内存区域标记为NX,这样就可以阻止很多恶意程序的破坏行为。 目前AMD和Intel的CPU防毒技术都是针对Windows XP SP2所提供的DEP(Date Execution Prevention)进行设计的。在该操作系统中,我们可以针对单个程序设置其是否受到这种机制的保护。需要注意是,基于NX bit的防范措施只能避免部分恶意行为的侵扰,而不能解决所有的安全问题。 攻击者仍然可能猜出可以执行代码的位置,只是难度要有所增加而已,而没有正确编写的应用程序和系统软件,仍旧会留下安全隐患。毕竟究其本质,NX bit只是在硬件层提供了一个保护机制而已。而任何安全设施没有被正确使用的话,都不会获得正确的结果。 主板集成的硬件防火墙 为了给单机用户提供更强大的安全防护能力,也为了为系统减轻负担,nVIDIA在推出其第一代64位主板控制芯片NF3 250Gb时,在其中集成了硬件防火墙功能。这项功能随后又被加入到NF2 Ultra 400 Gb中,之后推出的NF4 Ultra也包含了这项功能。以NF4 Ultra为例,其防火墙管理软件被集成于驱动程序之中。如果决定使用该防火墙,可先将当前机器上所安装的防火墙软件禁用。 启用了主板集成的防火墙之
C. GitHub上面有哪些经典的java框架源码
Bazel:来自Google的构建工具,可以快速、可靠地构建代码。官网
Gradle:使用Groovy(非XML)进行增量构建,可以很好地与Maven依赖管理配合工作。官网
Buck:Facebook构建工具。官网
字节码操作
编程方式操作字节码的开发库。
ASM:通用底层字节码操作和分析开发库。官网
Byte Buddy:使用流式API进一步简化字节码生成。官网
Byteman:在运行时通过DSL(规则)操作字节码进行测试和故障排除。官网
Javassist:一个简化字节码编辑尝试。官网
集群管理
在集群内动态管理应用程序的框架。
Apache Aurora:Apache Aurora是一个Mesos框架,用于长时间运行服务和定时任务(cron job)。官网
Singularity:Singularity是一个Mesos框架,方便部署和操作。它支持Web Service、后台运行、调度作业和一次性任务。官网
代码分析
测量代码指标和质量工具。
Checkstyle:代码编写规范和标准静态分析工具。官网
Error Prone:将常见编程错误作为运行时错误报告。官网
FindBugs:通过字节码静态分析查找隐藏bug。官网
jQAssistant:使用基于Neo4J查询语言进行代码静态分析。官网
PMD:对源代码分析查找不良的编程习惯。官网
SonarQube:通过插件集成其它分析组件,对过去一段时间内的数据进行统计。官网
编译器生成工具
用来创建解析器、解释器或编译器的框架。
ANTLR:复杂的全功能自顶向下解析框架。官网
JavaCC:JavaCC是更加专门的轻量级工具,易于上手且支持语法超前预测。官网
外部配置工具
支持外部配置的开发库。
config:针对JVM语言的配置库。官网
owner:减少冗余配置属性。官网
约束满足问题求解程序
帮助解决约束满足问题的开发库。
Choco:可直接使用的约束满足问题求解程序,使用了约束规划技术。官网
JaCoP:为FlatZinc语言提供了一个接口,可以执行MiniZinc模型。官网
OptaPlanner:企业规划与资源调度优化求解程序。官网
Sat4J:逻辑代数与优化问题最先进的求解程序。官网
持续集成
Bamboo:Atlassian解决方案,可以很好地集成Atlassian的其他产品。可以选择开源许可,也可以购买商业版。官网
CircleCI:提供托管服务,可以免费试用。官网
Codeship:提供托管服务,提供有限的免费模式。官网
fabric8:容器集成平台。官网
Go:ThoughtWork开源解决方案。官网
Jenkins:支持基于服务器的部署服务。官网
TeamCity:JetBrain的持续集成解决方案,有免费版。官网
Travis:通常用作开源项目的托管服务。官网
Buildkite: 持续集成工具,用简单的脚本就能设置pipeline,而且能快速构建,可以免费试用。官网
CSV解析
简化CSV数据读写的框架与开发库
uniVocity-parsers:速度最快功能最全的CSV开发库之一,同时支持TSV与固定宽度记录的读写。官网
数据库
简化数据库交互的相关工具。
Apache Phoenix:HBase针对低延时应用程序的高性能关系数据库层。官网
Crate:实现了数据同步、分片、缩放、复制的分布式数据存储。除此之外还可以使用基于SQL的语法跨集群查询。官网
Flyway:简单的数据库迁移工具。官网
H2:小型SQL数据库,以可以作为内存数据库使用著称。官网
HikariCP:高性能JDBC连接工具。官网
JDBI:便捷的JDBC抽象。官网
Protobuf:Google数据交换格式。官网
SBE:简单二进制编码,是最快速的消息格式之一。官网
Wire:整洁轻量级协议缓存。官网
帮实现依赖翻转范式的开发库。官网
Apache DeltaSpike:CDI扩展框架。官网
Dagger2:编译时注入框架,不需要使用反射。官网
Guice:可以匹敌Dagger的轻量级注入框架。官网
HK2:轻量级动态依赖注入框架。官网
开发流程增强工具
从最基本的层面增强开发流程。
ADT4J:针对代数数据类型的jsR-269代码生成器。官网
AspectJ:面向切面编程(AOP)的无缝扩展。官网
Auto:源代码生成器集合。官网
DCEVM:通过修改JVM在运行时支持对已加载的类进行无限次重定义。官网
HotswapAgent:支持无限次重定义运行时类与资源。官网
Immutables:类似Scala的条件类。官网
JHipster:基于Spring Boot与AngularJS应用程序的Yeoman源代码生成器。官网
JRebel:无需重新部署,可以即时重新加载代码与配置的商业软件。官网
Lombok:减少冗余的代码生成器。官网
Spring Loaded:类重载代理。官网
vert.x:多语言事件驱动应用框架。官网
分布式应用
用来编写分布式容错应用的开发库和框架。
Akka:用来编写分布式容错并发事件驱动应用程序的工具和运行时。官网
Apache Storm:实时计算系统。官网
Apache ZooKeeper:针对大型分布式系统的协调服务,支持分布式配置、同步和名称注册。官网
Hazelcast:高可扩展内存数据网格。官网
Hystrix:提供延迟和容错。官网
JGroups:提供可靠的消息传递和集群创建的工具。官网
Orbit:支持虚拟角色(Actor),在传统角色的基础上增加了另外一层抽象。官网
Quasar:为JVM提供轻量级线程和角色。官网
分布式数据库
对应用程序而言,在分布式系统中的数据库看起来就像是只有一个数据源。
Apache Cassandra:列式数据库,可用性高且没有单点故障。官网
Apache HBase:针对大数据的Hadoop数据库。官网
Druid:实时和历史OLAP数据存储,在聚集查询和近似查询方面表现不俗。官网
Infinispan:针对缓存的高并发键值对数据存储。官网
发布
以本机格式发布应用程序的工具。
Bintray:发布二进制文件版本控制工具。可以于Maven或Gradle一起配合使用。提供开源免费版本和几种商业收费版本。官网
Central Repository:最大的二进制组件仓库,面向开源社区提供免费服务。Apache Maven默认使用Central官网Repository,也可以在所有其他构建工具中使用。
IzPack:为跨平台部署建立创作工具(Authoring Tool)。官网
JitPack:打包GitHub仓库的便捷工具。可根据需要构建Maven、Gradle项目,发布可立即使用的组件。官网
Launch4j:将JAR包装为轻量级本机Windows可执行程序。官网
Nexus:支持代理和缓存功能的二进制管理工具。官网
packr:将JAR、资源和JVM打包成Windows、Linux和Mac OS X本地发布文件。官网
文档处理工具
处理Office文档的开发库。
Apache POI:支持OOXML规范(XLSX、DOCX、PPTX)以及OLE2规范(XLS、DOC、PPT)。官网
documents4j:使用第三方转换器进行文档格式转换,转成类似MS Word这样的格式。官网
jOpenDocument:处理OpenDocument格式(由Sun公司提出基于XML的文档格式)。官网
函数式编程
函数式编程支持库。
Cyclops:支持一元(Monad)操作和流操作工具类、comprehension(List语法)、模式匹配、trampoline等特性。官网
Fugue:Guava的函数式编程扩展。官网
Functional Java:实现了多种基础和高级编程抽象,用来辅助面向组合开发(composition-oriented development)。官网
Javaslang:一个函数式组件库,提供持久化数据类型和函数式控制结构。官网
jOOλ:旨在填补Java 8 lambda差距的扩展,提供了众多缺失的类型和一组丰富的顺序流API。官网
游戏开发
游戏开发框架。
jMonkeyEngine:现代3D游戏开发引擎。官网
libGDX:全面的跨平台高级框架。官网
LWJGL:对OpenGL/CL/AL等技术进行抽象的健壮框架。官网
GUI
现代图形化用户界面开发库。
JavaFX:Swing的后继者。官网
Scene Builder:开发JavaFX应用的可视化布局工具。官网
高性能计算
涵盖了从集合到特定开发库的高性能计算相关工具。
Agrona:高性能应用中常见的数据结构和工具方法。官网
Disruptor:线程间消息传递开发库。官网
fastutil:快速紧凑的特定类型集合(Collection)。官网
GS Collections:受Smalltalk启发的集合框架。官网
HPPC:基础类型集合。官网
Javolution:实时和嵌入式系统的开发库。官网
JCTools:JDK中缺失的并发工具。官网
Koloboke:Hash set和hash map。官网
Trove:基础类型集合。官网
High-scale-bli:Cliff Click 个人开发的高性能并发库官网
IDE
简化开发的集成开发环境。
Eclipse:老牌开源项目,支持多种插件和编程语言。官网
IntelliJ IDEA:支持众多JVM语言,是安卓开发者好的选择。商业版主要针对企业客户。官网
NetBeans:为多种技术提供集成化支持,包括Java SE、Java EE、数据库访问、HTML5
Imgscalr:纯Java 2D实现,简单、高效、支持硬件加速的图像缩放开发库。官网
Picasso:安卓图片下载和图片缓存开发库。官网
Thumbnailator:Thumbnailator是一个高质量Java缩略图开发库。官网
ZXing:支持多种格式的一维、二维条形码图片处理开发库。官网
im4java: 基于ImageMagick或GraphicsMagick命令行的图片处理开发库,基本上ImageMagick能够支持的图片格式和处理方式都能够处理。官网
Apache Batik:在Java应用中程序以SVG格式显示、生成及处理图像的工具集,包括SVG解析器、SVG生成器、SVG DOM等模块,可以集成使用也可以单独使用,还可以扩展自定义的SVG标签。官网
JSON
简化JSON处理的开发库。
Genson:强大且易于使用的Java到JSON转换开发库。官网
Gson:谷歌官方推出的JSON处理库,支持在对象与JSON之间双向序列化,性能良好且可以实时调用。官网
Jackson:与GSON类似,在频繁使用时性能更佳。官网
LoganSquare:基于Jackson流式API,提供对JSON解析和序列化。比GSON与Jackson组合方式效果更好。官网
Fastjson:一个Java语言编写的高性能功能完善的JSON库。官网
Kyro:快速、高效、自动化的Java对象序列化和克隆库。官网
JVM与JDK
目前的JVM和JDK实现。
JDK 9:JDK 9的早期访问版本。官网
OpenJDK:JDK开源实现。官网
基于JVM的语言
除Java外,可以用来编写JVM应用程序的编程语言。
Scala:融合了面向对象和函数式编程思想的静态类型编程语言。官网
Groovy:类型可选(Optionally typed)的动态语言,支持静态类型和静态编译。目前是一个Apache孵化器项目。官网
Clojure:可看做现代版Lisp的动态类型语言。官网
Ceylon:RedHat开发的面向对象静态类型编程语言。官网
Kotlin:JetBrain针对JVM、安卓和浏览器提供的静态类型编程语言。官网
Xtend:一种静态编程语言,能够将其代码转换为简洁高效的Java代码,并基于JVM运行。官网
日志
记录应用程序行为日志的开发库。
Apache Log4j 2:使用强大的插件和配置架构进行完全重写。官网
kibana:分析及可视化日志文件。官网
Logback:强健的日期开发库,通过Groovy提供很多有趣的选项。官网
logstash:日志文件管理工具。官网
Metrics:通过JMX或HTTP发布参数,并且支持存储到数据库。官网
SLF4J:日志抽象层,需要与具体的实现配合使用。官网
机器学习
提供具体统计算法的工具。其算法可从数据中学习。
Apache Flink:快速、可靠的大规模数据处理引擎。官网
Apache Hadoop:在商用硬件集群上用来进行大规模数据存储的开源软件框架。官网
Apache Mahout:专注协同过滤、聚类和分类的可扩展算法。官网
Apache Spark:开源数据分析集群计算框架。官网
DeepDive:从非结构化数据建立结构化信息并集成到已有数据库的工具。官网
Deeplearning4j:分布式多线程深度学习开发库。官网
H2O:用作大数据统计的分析引擎。官网
Weka:用作数据挖掘的算法集合,包括从预处理到可视化的各个层次。官网
QuickML:高效机器学习库。官网、GitHub
消息传递
在客户端之间进行消息传递,确保协议独立性的工具。
Aeron:高效可扩展的单播、多播消息传递工具。官网
Apache ActiveMQ:实现JMS的开源消息代理(broker),可将同步通讯转为异步通讯。官网
Apache Camel:通过企业级整合模式(Enterprise Integration Pattern EIP)将不同的消息传输API整合在一起。官网
Apache Kafka:高吞吐量分布式消息系统。官网
Hermes:快速、可靠的消息代理(Broker),基于Kafka构建。官网
JBoss HornetQ:清晰、准确、模块化,可以方便嵌入的消息工具。官网
JeroMQ:ZeroMQ的纯Java实现。官网
Smack:跨平台XMPP客户端函数库。官网
Openfire:是开源的、基于XMPP、采用Java编程语言开发的实时协作服务器。 Openfire安装和使用都非常简单,并可利用Web界面进行管理。官网GitHub
Spark:是一个开源,跨平台IM客户端。它的特性支持集组聊天,电话集成和强大安全性能。如果企业内部部署IM使用Openfire+Spark是最佳的组合。官网GitHub
Tigase: 是一个轻量级的可伸缩的 Jabber/XMPP 服务器。无需其他第三方库支持,可以处理非常高的复杂和大量的用户数,可以根据需要进行水平扩展。官网
杂项
未分类其它资源。
Design Patterns:实现并解释了最常见的设计模式。官网
Jimfs:内存文件系统。官网
Lanterna:类似curses的简单console文本GUI函数库。官网
LightAdmin:可插入式CRUD UI函数库,可用来快速应用开发。官网
OpenRefine:用来处理混乱数据的工具,包括清理、转换、使用Web Service进行扩展并将其关联到数据库。官网
RoboVM:Java编写原生iOS应用。官网
Quartz:强大的任务调度库.官网
应用监控工具
监控生产环境中应用程序的工具。
AppDynamics:性能监测商业工具。官网
JavaMelody:性能监测和分析工具。官网
Kamon:Kamon用来监测在JVM上运行的应用程序。官网
New Relic:性能监测商业工具。官网
SPM:支持对JVM应用程序进行分布式事务追踪的性能监测商业工具。官网
Takipi:产品运行时错误监测及调试商业工具。官网
原生开发库
用来进行特定平台开发的原生开发库。
JNA:不使用JNI就可以使用原生开发库。此外,还为常见系统函数提供了接口。官网
自然语言处理
用来专门处理文本的函数库。
Apache OpenNLP:处理类似分词等常见任务的工具。官网
CoreNLP:斯坦佛CoreNLP提供了一组基础工具,可以处理类似标签、实体名识别和情感分析这样的任务。官网
LingPipe:一组可以处理各种任务的工具集,支持POS标签、情感分析等。官网
Mallet:统计学自然语言处理、文档分类、聚类、主题建模等。官网
网络
网络编程函数库。
Async Http Client:异步HTTP和WebSocket客户端函数库。官网
Grizzly:NIO框架,在Glassfish中作为网络层使用。官网
Netty:构建高性能网络应用程序开发框架。官网
OkHttp:一个Android和Java应用的HTTP+SPDY客户端。官网
Undertow:基于NIO实现了阻塞和非阻塞API的Web服务器,在WildFly中作为网络层使用。官网
ORM
处理对象持久化的API。
Ebean:支持快速数据访问和编码的ORM框架。官网
EclipseLink:支持许多持久化标准,JPA、JAXB、JCA和SDO。官网
Hibernate:广泛使用、强健的持久化框架。Hibernate的技术社区非常活跃。官网
MyBatis:带有存储过程或者SQL语句的耦合对象(Couples object)。官网
OrmLite:轻量级开发包,免除了其它ORM产品中的复杂性和开销。官网
Nutz:另一个SSH。官网,Github
JFinal:JAVA WEB + ORM框架。官网,Github
用来帮助创建PDF文件的资源。
Apache FOP:从XSL-FO创建PDF。官网
Apache PDFBox:用来创建和操作PDF的工具集。官网
DynamicReports:JasperReports的精简版。官网
flyingsaucer:XML/XHTML和CSS 2.1渲染器。官网
iText:一个易于使用的PDF函数库,用来编程创建PDF文件。注意,用于商业用途时需要许可证。官网
JasperReports:一个复杂的报表引擎。官网
性能分析
性能分析、性能剖析及基准测试工具。
jHiccup:提供平台中JVM暂停的日志和记录。官网
JMH:JVM基准测试工具。官网
JProfiler:商业分析器。官网
LatencyUtils:测量和报告延迟的工具。官网
VisualVM:对运行中的应用程序信息提供了可视化界面。官网
YourKit Java Profiler:商业分析器。官网
响应式开发库
用来开发响应式应用程序的开发库。
Reactive Streams:异步流处理标准,支持非阻塞式反向压力(backpressure)。官网
Reactor:构建响应式快速数据(fast-data)应用程序的开发库。官网
RxJava:通过JVM可观察序列(observable sequence)构建异步和基于事件的程序。官网
REST框架
用来创建RESTful 服务的框架。
Dropwizard:偏向于自己使用的Web框架。用来构建Web应用程序,使用了Jetty、Jackson、Jersey和Metrics。官网
Feign:受Retrofit、JAXRS-2.0和WebSocket启发的HTTP客户端连接器(binder)。官网
Jersey:JAX-RS参考实现。官网
RESTEasy:经过JAX-RS规范完全认证的可移植实现。官网
RestExpress:一个Java类型安全的REST客户端。官网
RestX:基于注解处理和编译时源码生成的框架。官网
Retrofit:类型安全的REST客户端。官网
Spark:受到Sinatra启发的Java REST框架。官网
Swagger:Swagger是一个规范且完整的框架,提供描述、生产、消费和可视化RESTful Web Service。官网
Blade:国人开发的一个轻量级的MVC框架. 它拥有简洁的代码,优雅的设计。官网
科学计算与分析
用于科学计算和分析的函数库。
DataMelt:用于科学计算、数据分析及数据可视化的开发环境。官网
JGraphT:支持数学图论对象和算法的图形库。官网
JScience:用来进行科学测量和单位的一组类。官网
搜索引擎
文档索引引擎,用于搜索和分析。
Apache Solr:一个完全的企业搜索引擎。为高吞吐量通信进行了优化。官网
Elasticsearch:一个分布式、支持多租户(multitenant)全文本搜索引擎。提供了RESTful Web接口和无schema的JSON文档。官网
Apache Lucene:是一个开放源代码的全文检索引擎工具包,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。官网
安全
用于处理安全、认证、授权或会话管理的函数库。
Apache Shiro:执行认证、授权、加密和会话管理。官网
Bouncy Castle,涵盖了从基础的帮助函数到PGP/SMIME操作。官网:多途加密开发库。支持JCA提供者(JCA provider)
Cryptomator:在云上进行客户端跨平台透明加密。官网
Keycloak:为浏览器应用和RESTful Web Service集成SSO和IDM。目前还处于beta版本,但是看起来非常有前途。官网
PicketLink:PicketLink是一个针对Java应用进行安全和身份认证管理的大型项目(Umbrella Project)。官网
序列化
用来高效处理序列化的函数库。
FlatBuffers:高效利用内存的序列化函数库,无需解包和解析即可高效访问序列化数据。官网
Kryo:快速、高效的对象图形序列化框架。官网
FST:提供兼容JDK的高性能对象图形序列化。官网
MessagePack:一种高效的二进制序列化格式。官网
应用服务器
用来部署应用程序的服务器。
Apache Tomcat:针对Servlet和JSP的应用服务器,健壮性好且适用性强。官网
Apache TomEE:Tomcat加Java EE。官网
Jetty:轻量级、小巧的应用服务器,通常会嵌入到项目中。官网
WebSphere Liberty:轻量级、模块化应用服务器,由IBM开发。官网
WildFly:之前被称作JBoss,由Red Hat开发。支持很多Java EE功能。官网
模板引擎
在模板中替换表达式的工具。
Apache Velocity:提供HTML页面模板、email模板和通用开源代码生成器模板。官网
FreeMarker:通用模板引擎,不需要任何重量级或自己使用的依赖关系。官网
Handlebars.java:使用Java编写的模板引擎,逻辑简单,支持语义扩展(semantic Mustache)。官网
Thymeleaf:旨在替换JSP,支持XML文件的工具。官网
测试
测试内容从对象到接口,涵盖性能测试和基准测试工具。
Apache JMeter:功能性测试和性能评测。官网
Arquillian:集成测试和功能行测试平台,集成Java EE容器。官网
AssertJ:支持流式断言提高测试的可读性。官网
Awaitility:用来同步异步操作的DSL。官网
Cucumber:BDD测试框架。官网
Gatling:设计为易于使用、可维护的和高性能负载测试工具。官网
Hamcrest:可用来灵活创建意图(intent)表达式的匹配器。官网
JMockit:用来模拟静态、final方法等。官网
JUnit:通用测试框架。官网
Mockito:在自动化单元测试中创建测试对象,为TDD或BDD提供支持。官网
PowerMock: 支持模拟静态方法、构造函数、final类和方法、私有方法以及移除静态初始化器的模拟工具。官网
REST Assured:为REST/HTTP服务提供方便测试的Java DSL。官网
Selenide:为Selenium提供精准的周边API,用来编写稳定且可读的UI测试。官网
Selenium:为Web应用程序提供可移植软件测试框架。官网
Spock:JUnit-compatible framework featuring an expressive Groovy-derived specification language.官网兼容JUnit框架,支持衍生的Groovy范的语言。
TestNG:测试框架。官网
Truth:Google的断言和命题(proposition)框架。官网
Unitils:模块化测试函数库,支持单元测试和集成测试。官网
WireMock:Web Service测试桩(Stub)和模拟函数。官网
通用工具库
通用工具类函数库。
Apache Commons:提供各种用途的函数,比如配置、验证、集合、文件上传或XML处理等。官网
args4j:命令行参数解析器。官网
CRaSH:为运行进行提供CLI。官网
Gephi:可视化跨平台网络图形化操作程序。官网
Guava:集合、缓存、支持基本类型、并发函数库、通用注解、字符串处理、I/O等。官网
JADE:构建、调试多租户系统的框架和环境。官网
javatuples:正如名字表示的那样,提供tuple支持。尽管目前tuple的概念还有留有争议。官网
JCommander:命令行参数解析器。官网
Protégé:提供存在论(ontology)编辑器以及构建知识系统的框架。官网
网络爬虫
用于分析网站内容的函数库。
Apache Nutch:可用于生产环境的高度可扩展、可伸缩的网络爬虫。官网
Crawler4j:简单的轻量级网络爬虫。官网
JSoup:刮取、解析、操作和清理HTML。官网
Web框架
用于处理Web应用程序不同层次间通讯的框架。
Apache Tapestry:基于组件的框架,使用Java创建动态、强健的、高度可扩展的Web应用程序。官网
Apache Wicket:基于组件的Web应用框架,与Tapestry类似带有状态显示GUI。官网
Google Web Toolkit:一组Web开发工具集,包含在客户端将Java代码转为JavaScript的编译器、XML解析器、RCP官网API、JUnit集成、国际化支持和GUI控件。
Grails:Groovy框架,旨在提供一个高效开发环境,使用约定而非配置、没有XML并支持混入(mixin)。官网
Ninja:Java全栈Web开发框架。非常稳固、快速和高效。官网
Pippo:小型、高度模块化的类Sinatra框架。官网
Play:使用约定而非配置,支持代码热加载并在浏览器中显示错误。官网
PrimeFaces:JSF框架,提供免费和带支持的商业版本。包括若干前端组件。官网
Ratpack:一组Java开发函数库,用于构建快速、高效、可扩展且测试完备的HTTP应用程序。官网
Spring Boot:微框架,简化了Spring新程序的开发过程。官网
Spring:旨在简化Java EE的开发过程,提供依赖注入相关组件并支持面向切面编程。官网
Vaadin:基于GWT构建的事件驱动框架。使用服务端架构,客户端使用Ajax。官网
Blade:国人开发的一个轻量级的MVC框架. 它拥有简洁的代码,优雅的设计。官网
业务流程管理套件
流程驱动的软件系统构建。
jBPM:非常灵活的业务流程管理框架,致力于构建开发与业务分析人员之间的桥梁。官网
Activity:轻量级工作流和业务流程管理框架。官网github
资源
社区