Total Pageviews

Friday, 10 June 2016

Java资源大全中文版

Java资源大全中文版,包括开发库、开发工具、网站、博客、微信、微博等,由伯乐在线持续更新。

我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理。awesome-java 就是 akullpp 发起维护的 Java 资源列表,内容包括:构建工具、数据库、框架、模板、安全、代码分析、日志、第三方库、书籍、Java 站点等等。伯乐在线已经把 awesome-java 资源列表翻成中文后发布于 ImportNew
Awesome 系列虽然挺全,但基本只对收录的资源做了极为简要的介绍,如果有更详细的中文介绍,对相应开发者的帮助会更大。这也是我们发起这个开源项目的初衷。

我们要做什么?


如何参与本项目?

从下面的目录来看,本项目的工作量小不了,所以非常期待能有更多程序员一起来参与。
不过加入前,有几个小要求:
  • 英文还不错,能读懂英文并用自己的话复述;
  • 在用 Java;
如有兴趣,请加 QQ:50872495。加 Q 时请注明「Java大全」

如何为列表贡献新资源?

欢迎大家为列表贡献高质量的新资源,提交PR时请参照以下要求:
  • 请确保推荐的资源自己使用过
  • 提交PR时请注明推荐理由
资源列表管理收到PR请求后,会定期(每周)在微博转发本周提交的PR列表,并在微博上面听取使用过这些资源的意见。确认通过后,会加入资源大全。
感谢您的贡献!

本项目的参与者

注:名单不分排名,不定期补充更新

奖励计划

虽然奖励可能并不是你加入的主要原因,但还是有必要提一下:
  • 整理超过 20 个资源后,可在伯乐在线上开通打赏;
  • 每整理 20 个资源,有机会获得技术书籍或各种有意思的创意、极客产品;
  • 奖励详情

目录

古董级工具

这些工具伴随着Java一起出现,在各自辉煌之后还在一直使用。
  • Apache Ant:基于XML的构建管理工具。官网
  • cglib:字节码生成库。官网
  • GlassFish:应用服务器,由Oracle赞助支持的Java EE参考实现。官网
  • Hudson:持续集成服务器,目前仍在活跃开发。官网
  • JavaServer Faces:Mojarra是JSF标准的一个开源实现,由Oracle开发。官网
  • JavaServer Pages:支持自定义标签库的网站通用模板库。官网
  • Liquibase:与具体数据库独立的追踪、管理和应用数据库Scheme变化的工具。官网

构建工具

构建及应用依赖关系处理工具。
  • Apache Maven:Maven是一款声明式构建及依赖管理工具,采用约定优于配置方式进行管理。相对Apache Ant更推荐使用Maven,前者采用了过程式管理,维护相对困难。官网
  • Bazel:来自Google的构建工具,可以快速、可靠地构建代码。官网
  • Gradle:使用Groovy(非XML)进行增量构建,可以很好地与Maven依赖管理配合工作。官网

字节码操作

编程方式操作字节码的开发库。
  • 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是更加专门的轻量级工具,易于上手且支持语法超前预测。官网

外部配置工具

支持外部配置的开发库。

约束满足问题求解程序

帮助解决约束满足问题的开发库。
  • Choco:可直接使用的约束满足问题求解程序,使用了约束规划技术。官网
  • JaCoP:为FlatZinc语言提供了一个接口,可以执行MiniZinc模型。官网
  • OptaPlanner:企业规划与资源调度优化求解程序。官网
  • Sat4J:逻辑代数与优化问题最先进的求解程序。官网

持续集成

  • Bamboo:Atlassian解决方案,可以很好地集成Atlassian的其他产品。可以选择开源许可,也可以购买商业版。官网
  • CircleCI:提供托管服务,可以免费试用。官网
  • Codeship:提供托管服务,提供有限的免费模式。官网
  • fabric8:容器集成平台。官网
  • Go:ThoughtWork开源解决方案。官网
  • Jenkins:支持基于服务器的部署服务。官网
  • TeamCity:JetBrain的持续集成解决方案,有免费版。官网
  • Travis:通常用作开源项目的托管服务。官网

CSV解析

简化CSV数据读写的框架与开发库
  • uniVocity-parsers:速度最快功能最全的CSV开发库之一,同时支持TSV与固定宽度记录的读写。官网

数据库

简化数据库交互的相关工具。
  • Apache Phoenix:HBase针对低延时应用程序的高性能关系数据库层。官网
  • Crate:实现了数据同步、分片、缩放、复制的分布式数据存储。除此之外还可以使用基于SQL的语法跨集群查询。官网
  • Flyway:简单的数据库迁移工具。官网
  • H2:小型SQL数据库,以可以作为内存数据库使用著称。官网
  • HikariCP:高性能JDBC连接工具。官网
  • JDBI:便捷的JDBC抽象。官网
  • jOOQ:为SQL schema生成typesafe代码。官网
  • MapDB:以磁盘或堆内存中并发集合为基础的嵌入式数据库引擎。官网
  • Presto:针对大数据的分布式SQL查询引擎。官网
  • Querydsl:Typesafe统一查询。官网

数据结构

  • Apache Parquet:Google Dremel论文中发布的基于组装算法的列式(Columnar)存储格式。官网
  • Protobuf:Google数据交换格式。官网
  • SBE:简单二进制编码,是最快速的消息格式之一。官网
  • Wire:整洁轻量级协议缓存。官网

时间日期工具库

处理时间和日期的开发库。
  • Joda-Time:在Java 8发布前,Joda-Time是实际使用的时间日期库标准。官网
  • Time4J:高级时间和日期库。官网

依赖注入

*帮实现[依赖翻转范式的开发库。*官网
  • 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

现代图形化用户界面开发库。

高性能计算

涵盖了从集合到特定开发库的高性能计算相关工具。
  • 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等。官网
  • Scala IDE:一款基于Eclipse开源平台打造的Scala集成开发环境。官网
  • SpringSource Tool Suite(sts):一款基于Eclipse开源平台打造的spring应用开发环境。官网

图像处理

创建、评价和操作图片的支持库。
  • Imgscalr:纯Java 2D实现,简单、高效、支持硬件加速的图像缩放开发库。官网
  • Picasso:安卓图片下载和图片缓存开发库。官网
  • Thumbnailator:Thumbnailator是一个高质量Java缩略图开发库。官网
  • ZXing:支持多种格式的一维、二维条形码图片处理开发库。官网
  • im4java: 基于ImageMagick或GraphicsMagick命令行的图片处理开发库,基本上ImageMagick能够支持的图片格式和处理方式都能够处理。官网

JSON

简化JSON处理的开发库。
  • Genson:强大且易于使用的Java到JSON转换开发库。官网
  • Gson:支持在对象与JSON之间双向序列化,性能良好且可以实时调用。官网
  • Jackson:与GSON类似,在频繁使用时性能更佳。官网
  • LoganSquare:基于Jackson流式API,提供对JSON解析和序列化。比GSON与Jackson组合方式效果更好。官网
  • Fastjson: 一个Java语言编写的高性能功能完善的JSON库。官网

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:用作数据挖掘的算法集合,包括从预处理到可视化的各个层次。官网

消息传递

在客户端之间进行消息传递,确保协议独立性的工具。
  • Aeron:高效可扩展的单播、多播消息传递工具。官网
  • Apache ActiveMQ:实现JMS的开源消息代理(broker),可将同步通讯转为异步通讯。官网
  • Apache Camel:通过企业级整合模式(Enterprise Integration Pattern EIP)将不同的消息传输API整合在一起。官网
  • Apache Kafka:高吞吐量分布式消息系统。官网
  • Hermes:快速、可靠的消息代理(Broker),基于Kafka构建。官网
  • JBoss HornetQ:清晰、准确、模块化,可以方便嵌入的消息工具。官网
  • JeroMQ:ZeroMQ的纯Java实现。官网
  • Smack:跨平台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产品中的复杂性和开销。官网

PDF

用来帮助创建PDF文件的资源。

性能分析

性能分析、性能剖析及基准测试工具。

响应式开发库

用来开发响应式应用程序的开发库。
  • 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 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 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)编辑器以及构建知识系统的框架。官网

网络爬虫

用于分析网站内容的函数库。

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:非常灵活的业务流程管理框架,致力于构建开发与业务分析人员之间的桥梁。官网

资源

社区

  • r/java:Reddit的Java子社区。官网
  • stackoverflow:问答平台。官网
  • vJUG:虚拟Java用户组。官网

有影响力的书

具有广泛影响且值得阅读的Java经典书籍。

播客

可以一边编程一边听的东西。
  • Java Council:官网
  • Java Posse:Discontinued as of 02/2015.官网

微博、微信公众号

  • ImportNew:是最受欢迎的、专注Java技术分享的微信公众号。专注Java技术分享,包括Java基础技术、进阶技能、架构设计和Java技术领域动态等。
  • ImportNew 微博:@ImportNew

Twitter

  • Adam Bien:自由职业者、作家、JavaONE明星演讲者、顾问、Java Champion。
  • Antonio Goncalves:Java Champion、JUG Leader、Devoxx France、Java EE 6/7、JCP、作家。
  • Arun Gupta:Java Champion、JavaONE明星演讲者、JUG Leader、Devoxx4Kids成员、Red Hatter。
  • Bruno Borges:Oracle产品经理、Java Jock。
  • Ed Burns:Oracle技术团队顾问。
  • Eugen Paraschiv:Spring安全课程作者。
  • James Weaver:Java、JavaFX、IoT开发者、作者和演讲者。
  • Java EE:Java EE Twitter官方账号。
  • Java Magazine:Java杂志官方账号。
  • Java.net:Java.net官方账号。
  • Java:Java Twitter官方账号。
  • Javin Paul:知名Java博客作者。
  • Lukas Eder:Data Geekery(jOOQ)创始人兼CEO。
  • Mario Fusco:RedHatter、JUG协调、活跃讲师和作者。
  • Mark Reinhold:Oracle首席架构师、Java平台开发组。
  • Martijn Verburg:London JUG co-leader、演讲者、作家、Java Champion等。
  • OpenJDK:OpenJDK官方账号。
  • Reza Rahman:Java EE、GlassFish、WebLogic传道者、作家、演讲者、开源黑客。
  • Simon Maple:Java Champion、virtualJUG创始人、LJC leader、RebelLabs作者。
  • Stephen Colebourne: Java Champion、演讲者。
  • Tim Boudreau:作家、NetBeans大牛。
  • Trisha Gee:Java Champion、演讲者。

知名网站

值得关注的Java技术站点。

中文站点

  • ImportNew(ImportNew 专注 Java 技术)

英文站点

from  https://github.com/jobbole/awesome-java-cn
---------------
下面是英文原版,内容要多些。

Awesome Java Awesome

A curated list of awesome Java frameworks, libraries and software.

Ancients

In existence since the beginning of time and which will continue being used long after the hype has waned.
  • Apache Ant - Build process management with XML.
  • Apache Hadoop - Storage and large-scale processing of data-sets on clusters of commodity hardware.
  • Apache OpenNLP - Toolkit for common tasks like tokenization.
  • Apache Velocity - Templates for HTML pages, emails or source code generation in general.
  • FreeMarker - General templating engine without any heavyweight or opinionated dependencies.
  • GlassFish - Application server and reference implementation for Java EE sponsored by Oracle.
  • GWT - Toolbox which includes a Java-to-JavaScript compiler for client-side code, XML parser, API for RPC, JUnit integration, internationalization support and widgets for the GUI.
  • HornetQ - Clear, concise, modular and made to be embedded.
  • Hudson - Continuous integration server still in active development.
  • Java Modeling Language (JML) - Behavioral interface specification language that can be used to specify the behavior of code modules. It combines the design by contract approach of Eiffel and the model-based specification approach of the Larch family of interface specification languages, with some elements of the refinement calculus. Used by several other verification tools.
  • JavaCC - More specific and slightly easier to learn. Has syntactic lookahead.
  • JavaServer Faces - Oracle's open-source implementation of the JSF standard, Mojarra.
  • JavaServer Pages - Common templating for websites with custom tag libraries.
  • JUnit - Common testing framework.
  • Launch4j - Wraps JARs in lightweight and native Windows executables.
  • Quartz - Open-source job scheduler library with Apache 2.0 license.
  • TestNG - Testing framework.
  • Trove - Primitive collections.

Bean Mapping

Frameworks that ease bean mapping.
  • Dozer - Mapper that copies data from one object to another, using annotations, API or XML configuration.
  • JMapper - Using byte code manipulation for lightning fast mapping. Supporting annotations, API or XML configuration.
  • MapStruct - Code generator which simplifies mappings between different bean types, based on a convention over configuration approach.
  • ModelMapper - ModelMapper is an intelligent object mapping library that automatically maps objects to each other.
  • Orika - Orika is a Java Bean mapping framework that recursively copies (among other capabilities) data from one object to another.
  • Selma - Stupid Simple Statically Linked Mapper. Selma is an Annotation Processor Based bean mapper.

Build

Tools which handle the build cycle and dependencies of an application.
  • Apache Maven - Declarative build and dependency management which favors convention over configuration. It might be preferable to Apache Ant which uses a rather procedural approach and can be difficult to maintain.
  • Bazel - Build tool from Google that builds code quickly and reliably.
  • Gradle - Incremental builds which are programmed via Groovy instead of declaring XML. Works well with Maven's dependency management.

Bytecode Manipulation

Libraries to manipulate bytecode programmatically.
  • ASM - All purpose, low level, bytecode manipulation and analysis.
  • Byte Buddy - Further simplifies bytecode generation with a fluent API.
  • Byteman - Manipulate bytecode at runtime via DSL (rules) mainly for testing/troubleshooting.
  • cglib - Bytecode generation library.
  • Javassist - Tries to simplify the editing of bytecode.

Caching

Libraries which provide caching facilities.
  • Caffeine - High performance, near optimal caching library.
  • Ehcache - Distributed general purpose cache.

Cluster Management

Frameworks which can dynamically manage applications inside of a cluster.
  • Apache Aurora - Apache Aurora is a Mesos framework for long-running services and cron jobs.
  • Apache Mesos - Abstracts CPU, memory, storage, and other compute resources away from machines.
  • Singularity - Singularity is a Mesos framework that makes deployment and operations easy. It supports web services, background workers, scheduled jobs, and one-off tasks.

Code Analysis

Tools that provide metrics and quality measurements.
  • Checkstyle - Static analysis of coding conventions and standards.
  • Codacy - Continuous static analysis, code coverage, and software metrics to automate code reviews.
  • Error Prone - Catches common programming mistakes as compile-time errors.
  • FindBugs - Static analysis of bytecode to find potential bugs.
  • jQAssistant - Static code analysis with Neo4J-based query language.
  • PMD - Source code analysis for finding bad coding practices.
  • SonarQube - Integrates other analysis components via plugins and provides an overview of the metrics over time.

Code Coverage

Frameworks and tools that enable collection of code coverage metrics for test suites.
  • Clover - Proprietary code coverage tool by Atlassian that relies on source-code instrumentation, instead of bytecode instrumentation.
  • Cobertura - Relies on offline (or static) bytecode instrumentation and class loading to collect code coverage metrics; GPLv2 licensed.
  • JaCoCo - Framework that enables collection of code coverage metrics, using both offline and runtime bytecode instrumentation; prominently used by EclEmma, the Eclipse code-coverage plugin.

Command-line Argument Parsers

Libraries that make it easy to parse command line options, arguments, etc.
  • args4j - Small library to parse command like arguments similar to javac.
  • JCommander - Command line arguments parsing framework with custom types and validation via implementing interfaces.
  • JOpt Simple - Simple parser that uses the POSIX getopt() and GNU getopt_long() syntaxes. Does not use annotations, uses a fluent API instead.

Compiler-compiler

Frameworks that help to create parsers, interpreters or compilers.
  • ANTLR - Complex full-featured framework for top-down parsing.
  • JFlex - A lexical analyzer generator.

Configuration

Libraries that provide external configuration.
  • config - Configuration library for JVM languages.
  • owner - Reduces boilerplate of properties.

Constraint Satisfaction Problem Solver

Libraries that help on implementing optimization and satisfiability problems.
  • Choco - Off-the-shelf constraint satisfaction problem solver, which uses constraint programming techniques.
  • JaCoP - Includes an interface for the FlatZinc language, enabling it to execute MiniZinc models.
  • OptaPlanner - Business planning and resource scheduling optimization solver.

Continuous Integration

Tools which support continuously building, testing and releasing applications.
  • Bamboo - Atlassian's solution with good integration of their other products. You can either apply for an open-source license or buy it.
  • fabric8 - Integration platform for containers.
  • Go - ThoughtWork's open-source solution.
  • Jenkins - Provides server-based deployment services.
  • TeamCity - JetBrain's CI solution with a free version.
  • Travis - Hosted service often used for open-source projects.

CSV

Frameworks and libraries that simplify reading/writing CSV data.
  • opencsv - Simple CSV parser with a commercial-friendly license.
  • Super CSV - Powerful CSV parser with support for Dozer, Joda-Time and Java 8.
  • uniVocity-parsers - One of the fastest and most feature-complete CSV. Also comes with parsers for TSV and fixed width records.

Database

Everything which simplifies interactions with the database.
  • Apache Hive - Data warehouse infrastructure built on top of Hadoop.
  • Apache Phoenix - High performance relational database layer over HBase for low latency applications.
  • Chronicle Map - Efficient in-memory (opt. persisted to disk) off-heap key-value store.
  • eXist - A NoSQL document database and application platform.
  • FlexyPool - Brings metrics and failover strategies to the most common connection pooling solutions.
  • Flyway - Simple database migration tool.
  • H2 - Small SQL Database notable for its in-memory functionality.
  • HikariCP - High performance JDBC connection pool.
  • JDBI - Convenient abstraction of JDBC.
  • Jedis - A small client for interaction with redis, with methods for commands.
  • jOOQ - Generates typesafe code based on SQL schema.
  • Liquibase - Database-independent library for tracking, managing and applying database schema changes.
  • MapDB - Embedded database engine that provides concurrent collections backed on disk or in off-heap memory.
  • Presto - Distributed SQL query engine for big data.
  • Querydsl - Typesafe unified queries.
  • Realm - Mobile database to run directly inside phones, tablets or wearables.
  • Redisson - Allows for distributed and scalable data structures on top of a Redis server.
  • Speedment - A database access library that utilizes the Java 8 Stream API for querying.
  • Vibur DBCP - JDBC connection pool library which offers advanced performance monitoring capabilities.

Data structures

Efficient and specific data structures.
  • Apache Avro - Data interchange format featuring among others: dynamic typing, untagged data, absence of manually assigned IDs.
  • Apache Orc - Fast and efficient columnar storage format for hadoop based workloads.
  • Apache Parquet - Columnar storage format based on assembly algorithms from the Dremel paper by Google.
  • Apache Thrift - Data interchange format that originated at Facebook.
  • Persistent Collection - Persistent and immutable analogue of the Java Collections Framework.
  • Protobuf - Google's data interchange format.
  • SBE - Simple Binary Encoding, one of the fastest message formats around.
  • Wire - Clean, lightweight protocol buffers.

Date and Time

Libraries related to handling date and time.
  • Almanac Converter - Simple conversion between different calendar systems.
  • Joda-Time - De facto standard date/time-library before Java 8.
  • ThreeTenBP - Port of JSR 310 (java.time package) by the author of Joda-Time.
  • Time4J - Advanced date and time library.

Dependency Injection

Libraries that help to realize the Inversion of Control paradigm.
  • Apache DeltaSpike - CDI extension framework.
  • Dagger2 - Compile-time injection framework without reflection.
  • Guice - Lightweight but powerful framework that completes Dagger.
  • HK2 - Light-weight and dynamic dependency injection framework.

Development

Augmentation of the development process at a fundamental level.
  • ADT4J - JSR-269 code generator for algebraic data types.
  • AspectJ - Seamless aspect-oriented programming extension.
  • Auto - Collection of source code generators.
  • DCEVM - Modification of the JVM that allows unlimited redefinition of loaded classes at runtime.
  • HotswapAgent - Unlimited runtime class and resource redefinition.
  • Immutables - Scala-like case classes.
  • JHipster - Yeoman source code generator to create applications based on Spring Boot and AngularJS.
  • JRebel - Commercial software that instantly reloads code and configuration changes without redeploys.
  • Lombok - Code-generator which aims to reduce the verbosity.
  • Spring Loaded - Class reloading agent.

Distributed Applications

Libraries and frameworks for writing distributed and fault-tolerant applications.
  • Akka - Toolkit and runtime for building concurrent, distributed, and fault tolerant event-driven applications.
  • Apache Storm - Realtime computation system.
  • Apache ZooKeeper - Coordination service with distributed configuration, synchronization, and naming registry for large distributed systems.
  • Atomix - Fault-tolerant distributed coordination framework.
  • Axon Framework - Framework for creating CQRS applications.
  • Copycat - Fault-tolerant state machine replication framework.
  • Hazelcast - Highly scalable in-memory datagrid.
  • Hystrix - Provides latency and fault tolerance.
  • JGroups - Toolkit for reliable messaging and creating clusters.
  • Lagom - Framework for creating microservice-based systems.
  • Orbit - Virtual Actors, adding another level of abstraction to traditional actors.
  • Quasar - Lightweight threads and actors for the JVM.

Distributed Databases

Databases in a distributed system that appear to applications as a single data source.
  • Apache Cassandra - Column-oriented and providing high availability with no single point of failure.
  • Apache HBase - Hadoop database for big data.
  • Druid - Real-time and historical OLAP data store that excel at aggregation and approximation queries.
  • Infinispan - Highly concurrent key/value datastore used for caching.
  • OpenTSDB - Scalable and distributed time series database written on top of Apache HBase.

Distribution

Tools which handle the distribution of applications in native formats.
  • Bintray - Version control for binaries which handles the publishing. Can also be used with Maven or Gradle and has a free plan for open-source software or several business plans.
  • Boxfuse - Deployment of JVM application to AWS using the principles of Immutable Infrastructure.
  • Capsule - Simple and powerful packaging and deployment. A fat JAR on steroids or a "Docker for Java" that supports JVM-optimized containers.
  • Central Repository - Largest binary component repository available as a free service to the open-source community. Default used by Apache Maven and available in all other build tools.
  • IzPack - Setup authoring tool for cross-platform deployments.
  • JitPack - Easy to use package repository for GitHub. Builds Maven/Gradle projects on demand and publishes ready-to-use packages.
  • Nexus - Binary management with proxy and caching capabilities.
  • packr - Packs JARs, assets and the JVM for native distribution on Windows, Linux and Mac OS X.

Document Processing

Libraries that assist with processing office document formats.
  • Apache POI - Supports OOXML (XLSX, DOCX, PPTX) as well as OLE2 (XLS, DOC or PPT).
  • documents4j - API for document format conversion using third-party converters such as MS Word.
  • docx4j - Creating and manipulating Microsoft Open XML files.

Formal Verification

Formal-methods tools: proof assistants, model checking, symbolic execution etc.
  • CATG - Concolic unit testing engine. Automatically generates unit tests using formal methods.
  • Checker Framework - Pluggable type systems. Includes nullness types, physical units, immutability types and more.
  • Daikon - Daikon detects likely program invariants and can generate JML specs based on those invariats.
  • Java Path Finder (JPF) - JVM formal verification tool containing a model checker and more. Created by NASA.
  • JMLOK 2.0 - Detects nonconformances between code and JML specification through the feedback-directed random tests generation, and suggests a likely cause for each nonconformance detected.
  • KeY - The KeY System is a formal software development tool that aims to integrate design, implementation, formal specification, and formal verification of object-oriented software as seamlessly as possible. Uses JML for specification and symbolic execution for verification.
  • OpenJML - Translates JML specifications into SMT-LIB format and passes the proof problems implied by the program to backend solvers.

Functional Programming

Libraries that facilitate functional programming.
  • cyclops-react - Monad and stream utilities, comprehensions, pattern matching, functional extensions for all JDK collections, future streams, trampolines and much more.
  • derive4j - Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching, morphisms.
  • Fugue - Functional extensions to Guava.
  • Functional Java - Implements numerous basic and advanced programming abstractions that assist composition-oriented development.
  • Javaslang - Functional component library that provides persistent data types and functional control structures.
  • jOOλ - Extension to Java 8 which aims to fix gaps in lambda, providing numerous missing types and a rich set of sequential Stream API additions.

Game Development

Frameworks that support the development of games.
  • jMonkeyEngine - Game engine for modern 3D development.
  • libGDX - All-round cross-platform, high-level framework.
  • LWJGL - Robust framework that abstracts libraries like OpenGL/CL/AL.

Geospatial

Libraries for working with geospatial data and algorithms.
  • Apache SIS - Library for developing geospatial applications.
  • Geo - GeoHash utilities in Java.
  • Geotoolkit.org - Library for developing geospatial applications. Built on top of the Apache SIS project.
  • GeoTools - Library that provides tools for geospatial data.
  • H2GIS - A spatial extension of the H2 database.
  • Jgeohash - Library that can assist Java developers in using the GeoHash algorithm.
  • Mapsforge - Software for the rendering of maps based on OpenStreetMap data.
  • Spatial4j - General purpose spatial/geospatial ASL licensed open-source Java library.

GUI

Libraries to create modern graphical user interfaces.
  • JavaFX - The successor of Swing.
  • Scene Builder - Visual layout tool for JavaFX applications.
  • SWT - The Standard Widget Toolkit (SWT) is a graphical widget toolkit for use with the Java platform.

High Performance

Everything about high performance computation, from collections to specific libraries.
  • Agrona - Data structures and utility methods that are common in high-performance applications.
  • Disruptor - Inter-thread messaging library.
  • fastutil - Fast and compact type-specific collections.
  • GS Collections - Collection framework inspired by Smalltalk.
  • HPPC - Primitive collections.
  • JCTools - Concurrency tools currently missing from the JDK.
  • Koloboke - Hash sets and hash maps.

IDE

Integrated development environments that try to simplify several aspects of development.
  • Eclipse - Established, open-souce project with support for lots of plugins and languages.
  • IntelliJ IDEA - Supports a lot of JVM languages and provides good options for Android development. The commercial edition targets the enterprise sector.
  • NetBeans - Provides integration for several Java SE and EE features from database access to HTML5.

Imagery

Libraries that assist with the creation, evaluation or manipulation of graphical images.
  • Imgscalr - Simple and efficient hardware-accelerated image-scaling library implemented in pure Java 2D.
  • Thumbnailator - Thumbnailator is a high-quality thumbnail generation library for Java.
  • TwelveMonkeys - Collection of plugins which extend the number of supported image file formats.
  • ZXing - Multi-format 1D/2D barcode image processing library.

JSON

Libraries for serializing and deserializing JSON to and from Java objects.
  • Genson - Powerful and easy to use Java to JSON conversion library.
  • Gson - Serializes objects to JSON and vice versa. Good performance with on-the-fly usage.
  • Jackson - Similar to GSON but has performance gains if you need to instantiate the library more often.
  • Jackson-datatype-money - Open-source Jackson module to support JSON serialization and deserialization of JavaMoney data types.
  • JSON-io - Convert Java to JSON. Convert JSON to Java. Pretty print JSON. Java JSON serializer.
  • LoganSquare - JSON parsing and serializing library based on Jackson's streaming API. Outperforms GSON & Jackson's library.

JSON Processing

Libraries for processing data in JSON format.
  • fastjson - Very fast processor with no additional dependencies and full data binding.
  • Jolt - JSON to JSON transformation tool.
  • JsonPath - Extract data from JSON using XPATH like syntax.
  • JsonSurfer - Streaming JsonPath processor dedicated to processing big and complicated JSON data.

JVM and JDK

Current implementations of the JVM/JDK.
  • Avian - JVM with both a JIT & AOT modes. Includes an iOS port.
  • JDK 9 - Early access releases of JDK 9.
  • OpenJDK - Open-source implementation for Linux.
  • ParparVM - VM with non-blocking concurrent GC for iOS.
  • Zulu OpenJDK 9 - Early access OpenJDK 9 builds for Windows, Linux, and Mac OS X.
  • Zulu OpenJDK - OpenJDK builds for Windows, Linux, and Mac OS X through Java 8.

Logging

Libraries that log the behavior of an application.
  • Apache Log4j 2 - Complete rewrite with a powerful plugin and configuration architecture.
  • Graylog - Open-source aggregator suited for extended role and permission management.
  • Kibana - Analyzes and visualizes log files. Some features require payment.
  • Logback - Robust logging library with interesting configuration options via Groovy.
  • Logbook - Extensible, open-source library for HTTP request and response logging.
  • Logstash - Tool for managing log files.
  • SLF4J - Abstraction layer which is to be used with an implementation.
  • tinylog - Lightweight logging framework with static logger class.

Machine Learning

Tools that provide specific statistical algorithms which allow learning from data.
  • Apache Flink - Fast and reliable large-scale data processing engine.
  • Apache Mahout - Scalable algorithms focused on collaborative filtering, clustering and classification.
  • Apache Spark - Data analytics cluster computing framework.
  • DeepDive - Creates structured information from unstructured data and integrates it into an existing database.
  • Deeplearning4j - Distributed and multi-threaded deep learning library.
  • H2O - Analytics engine for statistics over big data.
  • JSAT - Algorithms for pre-processing, classification, regression, and clustering with support for multi-threaded execution.
  • Oryx 2 - A framework for building real-time large scale machine learning applications, which also includes end-to-end applications for collaborative filtering, classification, regression, and clustering.
  • Smile - The Statistical Machine Intelligence and Learning Engine provides a set of machine learning algorithms and a visualization library.
  • Weka - Collection of algorithms for data mining tasks ranging from pre-processing to visualization.

Messaging

Tools that help to send messages between clients in order to ensure protocol independency.
  • Aeron - Efficient reliable unicast and multicast message transport.
  • Apache ActiveMQ - Message broker that implements JMS and converts synchronous to asynchronous communication.
  • Apache Camel - Glues together different transport APIs via Enterprise Integration Patterns.
  • Apache Kafka - High-throughput distributed messaging system.
  • Hermes - Fast and reliable message broker built on top of Kafka.
  • Nakadi - Provides a RESTful API on top of Kafka.
  • JeroMQ - Implementation of ZeroMQ.
  • Smack - Cross-platform XMPP client library.
  • RocketMQ - A fast, reliable, and scalable distributed messaging platform.

Miscellaneous

Everything else.
  • Codename One - Cross platform solution for writing native mobile (iOS, Android, etc.)
  • Design Patterns - Implementation and explanation of the most common design patterns.
  • Failsafe - Simple failure handling with retries and circuit breakers.
  • J2ObjC - Java to Objective-C translator for porting Android libraries to iOS.
  • jabba - Java Version Manager inspired by nvm.
  • JBake - Static website generator.
  • Jimfs - In-memory file system.
  • JPad - Snippet runner.
  • Lanterna - Easy console text GUI library similar to curses.
  • LightAdmin - Pluggable CRUD UI library for rapid application development.
  • Modern Java - A Guide to Java 8 - Popular Java 8 guide.
  • OpenRefine - Tool for working with messy data: cleaning, transforming, extending it with web services and linking it to databases.
  • TypeTools - Tools for resolving generic types.

Monitoring

Tools that monitor applications in production.
  • AppDynamics - Commercial performance monitor.
  • JavaMelody - Performance monitoring and profiling.
  • jmxtrans - Tool to connect to multiple JVMs and to query them for their attributes via JMX. Its query language is based on JSON, which allows non-Java programmers to access the JVMs attributes. Likewise, this tool supports different output writes, including Graphite, Ganglia, StatsD, among others.
  • Jolokia - JMX over REST.
  • Kamon - Tool for monitoring applications running on the JVM.
  • Metrics - Expose metrics via JMX or HTTP and can send them to a database.
  • New Relic - Commercial performance monitor.
  • Prometheus - Provides a multi-dimensional data model, DSL, autonomous server nodes and much more.
  • SPM - Commercial performance monitor with distributing transaction tracing for JVM apps.
  • Takipi - Commercial in-production error monitoring and debugging.
  • Stagemonitor - Open source performance monitoring and transaction tracing for JVM apps.
  • Glowroot - Open source Java APM.
  • Pinpoint - Open source APM tool.

Native

For working with platform-specific native libraries.
  • JNA - Work with native libraries without writing JNI. Also provides interfaces to common system libraries.
  • JNR - Work with native libraries without writing JNI. Also provides interfaces to common system libraries. Same goals as JNA, but faster, and serves as the basis for the upcoming Project Panama.

Natural Language Processing

Libraries that specialize on processing text.
  • CoreNLP - Stanford's CoreNLP provides a set of fundamental tools for tasks like tagging, named entity recognition, sentiment analysis and many more.
  • DKPro - A collection of re-usable NLP tools for linguistic pre-processing, machine learning, lexical resources, etc.
  • LingPipe - Toolkit for a variety of tasks ranging from POS tagging to sentiment analysis.

Networking

Libraries for network programming.
  • Async Http Client - Asynchronous HTTP and WebSocket client library.
  • Comsat - Integrates standard Java web-related APIs with Quasar fibers and actors.
  • Finagle - Extensible RPC system used to construct high-concurrency servers. It implements uniform client and server APIs for several protocols, and is protocol agnostic, which simplifies the implementation of new protocols.
  • Grizzly - NIO framework. Used as a network layer in Glassfish.
  • gRPC - RPC framework based on protobuf and HTTP/2.
  • Netty - Framework for building high performance network applications.
  • Nifty - Implementation of Thrift clients and servers on Netty.
  • OkHttp - HTTP+SPDY client.
  • Riptide - Client-side response routing for Spring's RestTemplate.
  • Undertow - Web server providing both blocking and non-blocking API’s based on NIO. Used as a network layer in WildFly.
  • urnlib - Java library for representing, parsing and encoding URNs as in RFC 2141.

ORM

APIs which handle the persistence of objects.
  • Ebean - Provides simple and fast data access.
  • EclipseLink - Supports a number of persistence standards: JPA, JAXB, JCA and SDO.
  • Hibernate - Robust and widely used with an active community.
  • MyBatis - Couples objects with stored procedures or SQL statements.

PDF

Everything that helps with the creation of PDF files.

Performance analysis

Tools for performance analysis, profiling and benchmarking.

Platform

Frameworks that are suites of multiple libraries encompassing several categories.
  • Spring - Provides many packages ranging from dependency injection to aspect-oriented programming to security.

Reactive libraries

Libraries for developing reactive applications.
  • Reactive Streams - Provide a standard for asynchronous stream processing with non-blocking backpressure.
  • Reactor - Library for building reactive fast-data applications.
  • RxJava - Library for composing asynchronous and event-based programs using observable sequences from the JVM.
  • vert.x - Polyglot event-driven application framework.

REST Frameworks

Frameworks specifically for creating RESTful services.
  • Dropwizard - Opinionated framework for setting up modern web applications with Jetty, Jackson, Jersey and Metrics.
  • Feign - HTTP client binder inspired by Retrofit, JAXRS-2.0, and WebSocket.
  • Jersey - JAX-RS reference implementation.
  • Microserver — A convenient extensible Microservices plugin system for Spring & Spring Boot, with over 30 plugins and growing, that supports both micro-monolith and pure microservices styles.
  • RAML - Modeling language to generate REST APIs with contract first.
  • Rapidoid - A simple, secure and extremely fast framework consisting of embedded HTTP server, GUI components and dependency injection.
  • rest.li - Framework for building robust, scalable RESTful architectures using type-safe bindings and asynchronous, non-blocking IO with an end-to-end developer workflow that promotes clean practices, uniform interface design and consistent data modeling.
  • RESTEasy - Fully certified and portable implementation of the JAX-RS specification.
  • RestExpress - Thin wrapper on the JBoss Netty HTTP stack to provide scaling and performance.
  • Restlet Framework - Pioneering framework with powerful routing and filtering capabilities, unified client and server API.
  • Retrofit - Type-safe REST client.
  • Spark - Sinatra inspired framework.
  • Swagger - Swagger is a specification and complete framework implementation for describing, producing, consuming, and visualizing RESTful web services.

Science

Libraries for scientific computing, analysis and visualization.
  • DataMelt - Environment for scientific computation, data analysis and data visualization.
  • GraphStream - Library for modeling and analysis of dynamic graphs.
  • JGraphT - Graph library that provides mathematical graph-theory objects and algorithms.
  • JGraphX - Library for visualisation (mainly Swing) and interaction with node-edge graphs.

Search

Engines which index documents for search and analysis.
  • Apache Lucene - High-performance, full-featured cross-platform text search engine library.
  • Apache Solr - Enterprise search engine optimized for high volume traffic.
  • Elasticsearch - Distributed, multitenant-capable full-text search engine with a RESTful web interface and schema-free JSON documents.

Security

Libraries that handle security, authentication, authorization or session management.
  • Apache Shiro - Performs authentication, authorization, cryptography and session management.
  • Bouncy Castle - All-purpose cryptographic library. JCA provider, wide range of functions from basic helpers to PGP/SMIME operations.
  • Cryptomator - Multiplatform transparent client-side encryption of files in the cloud.
  • Google Keyczar - Easy to use, yet safe encryption framework with key versioning.
  • Keycloak - Integrated SSO and IDM for browser apps and RESTful web services.
  • OACC - Provides permission-based authorization services.
  • pac4j - Security engine.
  • PicketLink - Umbrella project for security and identity management.

Serialization

Libraries that handle serialization with high efficiency.
  • FlatBuffers - Memory efficient serialization library that can access serialized data without unpacking and parsing it.
  • FST - JDK compatible high performance object graph serialization.
  • Kryo - Fast and efficient object graph serialization framework.
  • MessagePack - Efficient binary serialization format.

Server

Servers which are specifically used to deploy applications.
  • Apache Tomcat - Robust all-round server for Servlet and JSP.
  • Apache TomEE - Tomcat plus Java EE.
  • Jetty - Lightweight, small server, often embedded in projects.
  • WebSphere Liberty - Lightweight, modular server developed by IBM.
  • WildFly - Formerly known as JBoss and developed by Red Hat with extensive Java EE support.

Template Engine

Tools which substitute expressions in a template.
  • Handlebars.java - Logic-less and semantic Mustache templates.
  • Thymeleaf - Aims to be a substitute for JSP and works for XML files in general.

Testing

Tools that test from model to the view.
  • Apache JMeter - Functional testing and performance measurements.
  • Arquillian - Integration and functional testing platform for Java EE containers.
  • AssertJ - Fluent assertions that improve readability.
  • Awaitility - DSL for synchronizing asynchronous operations.
  • Citrus - Integration testing framework with focus on client- and serverside messaging.
  • ConcurrentUnit - Toolkit for testing multi-threaded and asynchronous applications.
  • Cucumber - BDD testing framework.
  • Cukes-REST - A collection of Gherkin steps for REST-service testing using Cucumber.
  • Gatling - Load testing tool designed for ease of use, maintainability and high performance.
  • GreenMail - In-memory email server for integration testing. Supports SMTP, POP3 and IMAP including SSL.
  • Hamcrest - Matchers that can be combined to create flexible expressions of intent.
  • J8Spec - J8Spec is a library that allows tests written in Java to follow the BDD style introduced by RSpec and Jasmine.
  • JBehave - Framework for Behavioural Driven Development.
  • JGiven - Developer-friendly BDD testing framework compatible with JUnit and TestNG.
  • JMockit - Mocks static, final methods and more.
  • junit-dataprovider - A TestNG like dataprovider runner for JUnit.
  • JUnitParams - Creation of readable and maintainable parametrised tests.
  • Mockito - Creation of test double objects in automated unit tests for the purpose of TDD or BDD.
  • Moco - Concise web services for stubs and mocks, Duke's Choice Award 2013.
  • PIT - Fast mutation-testing framework for evaluating fault-detection abilities of existing JUnit or TestNG test-suites.
  • PowerMock - Enables mocking of static methods, constructors, final classes and methods, private methods and removal of static initializers.
  • REST Assured - Java DSL for easy testing for REST/HTTP services.
  • Selenide - Concise API around Selenium to write stable and readable UI tests.
  • Selenium - Portable software testing framework for web applications.
  • Spock - JUnit-compatible framework featuring an expressive Groovy-derived specification language.
  • Truth - Google's assertion and proposition framework.
  • WireMock - Stubbs and mocks web services.

Utility

Libraries which provide general utility functions.
  • Apache Commons - Provides different general purpose functions like configuration, validation, collections, file upload or XML processing.
  • CRaSH - Provides a shell into a JVM that's running CRaSH. Used by Spring Boot and others.
  • Dex - Java/JavaFX tool capable of powerful ETL and data visualization.
  • Gephi - Cross-platform for visualizing and manipulating large graph networks.
  • Guava - Collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and so forth.
  • JADE - Framework and environment for building and to debugging multi-agent systems.
  • JavaVerbalExpressions - A library that helps to construct difficult regular expressions.
  • Protégé - Provides an ontology editor and a framework to build knowledge-based systems.

Web Crawling

Libraries that analyze the content of websites.
  • Apache Nutch - Highly extensible, highly scalable web crawler for production environment.
  • Crawler4j - Simple and lightweight web crawler.
  • JSoup - Scrapes, parses, manipulates and cleans HTML.

Web Frameworks

Frameworks that handle the communication between the layers of an web application.
  • Apache Tapestry - Component-oriented framework for creating dynamic, robust, highly scalable web applications.
  • Apache Wicket - Component-based web application framework similar to Tapestry with a stateful GUI.
  • Blade - Lightweight, modular framework which aims to be elegant and simple.
  • Grails - Groovy framework with the aim to provide a highly productive environment by favoring convention over configuration, no XML and support for mixins.
  • Jooby - Scalable, fast and modular micro framework which offers multiple programming models.
  • Ninja - Full stack web framework.
  • Pippo - Small, highly modularized Sinatra-like framework.
  • Play - Uses convention over configuration, hot code reloading and display of errors in the browser.
  • PrimeFaces - JSF framework which has a free and a commercial version with support. Provides several frontend components.
  • Ratpack - Set of libraries that facilitate fast, efficient, evolvable and well tested HTTP applications.
  • Spring Boot - Microframework which simplifies the development of new Spring applications.
  • Vaadin - Event-driven framework build on top of GWT. Uses server-side architecture with Ajax on the client-side.

Resources

Communities

Active discussions.
  • r/java - Subreddit for the Java community.
  • stackoverflow - Question/answer platform.
  • vJUG - Virtual Java User Group.

Frontends

Websites that provide a frontend for this list. Please note, there won't be an official website. We don't associate with a particular website and everybody is allowed to create one.

Influential Books

Books that had a high impact and are still worth reading.

Podcasts

Something to listen to while programming.

Twitter

Active accounts to follow. Descriptions from Twitter.
  • Adam Bien - Freelancer: Author, JavaONE Rockstar Speaker, Consultant, Java Champion.
  • Aleksey Shipilëv - Performance Geek, Benchmarking Tzar, Concurrency Bug Hunter.
  • Antonio Goncalves - Java Champion, JUG Leader, Devoxx France, Java EE 6/7, JCP, Author.
  • Arun Gupta - Java Champion, JavaOne Rockstar, JUG Leader, Devoxx4Kids-er, VP of Developer Advocacy at Couchbase.
  • Brian Goetz - Java Language Architect at Oracle.
  • Bruno Borges - Product Manager/Java Jock at Oracle.
  • Ed Burns - Consulting Member of the Technical Staff at Oracle.
  • Eugen Paraschiv - Author of the Spring Security Course.
  • James Weaver - Java/JavaFX/IoT developer, author and speaker.
  • Java EE - Official Java EE Twitter account.
  • Java Magazine - Official Java Magazine account.
  • Java - Official Java Twitter account.
  • Javin Paul - Well-known Java blogger.
  • Lukas Eder - Java Champion, speaker, JUG.ch co-leader, Founder and CEO Data Geekery (jOOQ).
  • Mario Fusco - RedHatter, JUG coordinator, frequent speaker and author.
  • Mark Reinhold - Chief Architect, Java Platform Group, Oracle.
  • Markus Eisele - Java EE evangelist, Red Hat.
  • Martijn Verburg - London JUG co-leader, speaker, author, Java Champion and much more.
  • Martin Thompson - Pasty faced performance gangster.
  • OpenJDK - Official OpenJDK account.
  • Peter Lawrey - Peter Lawrey, Java performance expert.
  • Reza Rahman - Java EE/GlassFish/WebLogic evangelist, author, speaker, open source hacker.
  • Simon Maple - Java Champion, virtualJUG founder, LJC leader, RebelLabs author.
  • Stephen Colebourne - Java Champion, speaker.
  • Trisha Gee - Java Champion and speaker.

Websites

Sites to read.
from https://github.com/akullpp/awesome-java
------------------------------

from http://hao.jobbole.com/?catid=32

测试

更多 »
  • Mockito

    一个强大的开源Java模拟测试框架
  • Apache JMeter

    Web应用负载功能测试工具
  • JUnit

    Java单元测试框架
  • TestNG

    一个超越JUnit和NUnit的新测试框架
  • Selenide

    Selenium WebDriver驱动的自动化测试框架
  • PowerMock

    Java单元测试框架

Web框架

更多 »
  • Spring Boot

    简化Spring应用初始搭建以及开发过程
  • Spring

    J2EE框架
  • Ninja

    Java全栈Web开发框架
  • PrimeFaces

    Java EE终极UI框架
  • Blade

    一款简洁优雅、微内核设计的Java Web框架
  • Pippo

    Java小型开源Web微框架

REST框架

更多 »
  • Blade

    一款简洁优雅、微内核设计的Java Web框架
  • Retrofit

    类型安全的REST客户端
  • Feign

    Java HTTP客户端库
  • Swagger

    描述、生产、消费和可视化RESTful Web Service的规范框架
  • Dropwizard

    一个简洁的RESTful Web框架
  • Spark

    构建Java Web应用的REST微框架

通用工具库

更多 »
  • Guava

    Google的Java核心库
  • Apache Commons

    功能齐全的通用Java组件
  • Gephi

    开放的可视化跨平台图形操作平台
  • CRaSH

    Java开源shell
  • JADE

    Java多租户系统框架
  • args4j

    Java命令行参数解析器

日志

更多 »
  • Kibana

    分析及可视化日志文件
  • Apache Log4j 2

    一款全新的日志记录工具
  • Logstash

    日志文件管理工具
  • SLF4J

    一个灵活的Java日志接口
  • Logback

    旨在取代 log4j 的日志组件
  • Metrics

    通过JMX或HTTP发布参数,并且支持存储到数据库

PDF

更多 »

性能分析

更多 »

知名网站

更多 »

图像处理

更多 »
  • Picasso

    一个强大的图片下载和缓存库
  • ZXing

    一个开源二维码生成与解析Java类库
  • imgscalr

    Java图像缩放库
  • Thumbnailator

    高质量缩略图Java开发库
  • im4java

    ImageMagick命令行Java接口

JSON

更多 »
  • Jackson

    Java开源JSON格式解析工具
  • Gson

    一个JSON与Java对象转换开源类库
  • Genson

    Java开源JSON格式解析工具
  • Fastjson

    Java高性能JSON库
  • LoganSquare

    基于Jackson流式API,提供对JSON解析和序列化

消息传递

更多 »
  • Kafka

    下一代分布式消息系统
  • Apache ActiveMQ

    一款开源消息传递工具
  • Smack

    一个开源的XMPP用于即时通讯的客户端类库
  • Aeron

    高效可扩展的单播、多播消息传递工具
  • Apache Camel

    基于企业集成模式(EIP)的开源集成框架

网络

更多 »

安全

更多 »

应用服务器

更多 »
  • TomEE

    Tomcat+Java EE
  • Apache Tomcat

    针对Servlet和JSP的Java应用服务器
  • Jetty

    小巧的轻量级应用服务器
  • WildFly

    前身是JBoss,支持众多Java EE功能的应用服务器
  • WebSphere Liberty

    轻量级、模块化应用服务器

经典书籍

更多 »

ORM

更多 »
  • MyBatis

    支持定制化 SQL、存储过程以及高级映射的持久层框架
  • OrmLite

    轻量级ORM框架
  • Hibernate

    数据持久层框架
  • EclipseLink

    支持JPA、JAXB、JCA和SDO等多种持久化标准的ORM

分布式数据库

更多 »
  • Druid

    一款开源数据分析工具
  • Cassandra

    开源分布式Key-Value存储系统
  • Infinispan

    针对缓存的高并发键值对数据存储
  • HBase

    开源分布式数据库

自然语言处理

更多 »
  • Stanford CoreNLP

    一个独立的自然语言处理框架与服务
  • LingPipe

    自然语言处理工具包
  • Apache OpenNLP

    处理类似分词等常见任务的工具
  • Mallet

    NLP工具,支持文档分类、聚类、主题建模

序列化

更多 »
  • MessagePack

    一种高效二进制序列化格式
  • Kryo

    快速、高效的序列化框架
  • FST

    兼容JDK的高性能对象序列化开发库
  • FlatBuffers

    高效利用内存的序列化函数库

模板引擎

更多 »

IDE

更多 »

代码分析

更多 »
  • SonarQube

    开源的代码质量管理工具
  • PMD

    Java源代码扫描器
  • Checkstyle

    开源Java编码规范检查工具

构建工具

更多 »
  • Gradle

    新一代自动化构建工具
  • Apache Maven

    一款开源软件项目管理工具
  • Bazel

    来自Google的构建工具,可以快速、可靠地构建代码

开发流程增强工具

更多 »
  • JRebel

    热部署解决方案
  • AspectJ

    面向切面的Java扩展
  • ADT4J

    一种Java代数类型开发库

应用监控工具

更多 »

响应式开发库

更多 »
  • Reactive Streams

    异步流处理标准
  • Reactor

    构建响应式快速数据应用程序的开发库
  • RxJava

    通过JVM可观察序列构建异步和基于事件的程序

网络爬虫

更多 »
  • crawler4j

    轻量级多线程网络爬虫
  • Apache Nutch

    可扩展可伸缩的Java 网络爬虫
  • jsoup

    一款Java开源HTML解析工具

基于JVM的语言

更多 »
  • Groovy

    基于JVM的面向对象动态类型语言
  • Xtend

    Xtend:基于JVM的编程语言

编译器生成工具

更多 »
  • ANTLR

    复杂的全功能自顶向下解析框架
  • JavaCC

    Java语法解析器生成工具

外部配置工具

更多 »
  • OWNER

    Java配置文件解决方案
  • config

    针对JVM语言的配置库

时间日期工具库

更多 »
  • Joda-Time

    Java时间日期工具库
  • Time4J

    日期、时间、间隔Java库

分布式应用

更多 »
  • Akka

    一种具有高可扩展性和容错性的并发容器
  • Zookeeper

    分布式系统协调

文档处理工具

更多 »

GUI

更多 »
  • JavaFX

    Swing的后继者,新一代富客户端应用程序解决方案
  • Scene Builder

    JavaFX可视化布局开发工具

JVM与JDK

更多 »

机器学习

更多 »
  • Apache Hadoop

    在商用硬件集群上用来进行大规模数据存储的开源软件框架
  • Apache Flink

    快速、可靠的大规模数据处理引擎

科学计算与分析

更多 »
  • JGraphT

    支持数学图论对象和算法的图形库
  • JScience

    用来进行科学测量和单位的一组类

古董级工具

更多 »
  • Hudson

    一款持续构建工具

持续集成

更多 »
  • Jenkins

    一款持续集成与持续交付应用

CSV解析

更多 »

数据库

更多 »
  • H2

    开源内存数据库引擎

依赖注入

更多 »
  • HK2

    轻量级动态依赖注入框架

游戏开发

更多 »
  • libGDX

    一个跨平台的2D/3D的游戏开发框架

高性能计算

更多 »
  • HPPC

    高效的Java集合库

杂项

更多 »
  • Quartz

    强大的任务调度库

原生开发库

更多 »
  • JNA

    无需编写JNI代码就可以使用原生开发库

搜索引擎

更多 »

业务流程管理套件

更多 »
  • jBPM

    业务流程管理套件