本文将提供一些工具,帮助你优化代码以及检查源代码中的潜在问题。
1. PMD from http://pmd.sourceforge.net/
PMD能够扫描Java 源代码,查找类似以下的潜在问题:
- 可能的bug——try/catch/finally/switch语句中返回空值。
- 死代码——未使用的局部变量、参数、私有方法。
- 不理想的代码——使用String/StringBuffer。
- 过于复杂的表达式——没有必要使用if语句、while循环可以代替for循环。
- 重复代码——复制/粘贴的代码引发的bug。
PMD集成了JDeveloper, Eclipse, JEdit, JBuilder, BlueJ, CodeGuide, NetBeans/Sun Java Studio Enterprise/Creator, IntelliJ IDEA, TextPad, Maven, Ant, Gel, JCreator, 以及 Emacs。
2. FindBug from http://findbugs.sourceforge.net
FindBug是一个使用静态方法来查找Java代码漏洞的程序。
3.Clover from http://www.cenqua.com/clover/
这个插件允许你在不离开IDE的环境条件下来衡量和检测覆盖效果。该插件通过使用Apache Ant、Maven来无缝集成其它项目,可以通过命令行界面和API系统轻松集成到传统的构建系统中。
该插件的特性:
- 支持快速、准确、可配置的方法,语句等。
- 支持丰富的报告格式:HTML、PDF、XML、以及Swing GUI。
- 精确控制源代码级别的过滤。
- 支持代码覆盖以及其它指标的图表。
- 完全兼容JUnit 3.x & 4.x, TestNG, JTiger以及其它的测试框架。
4. Macker from http://innig.net/macker/
Macker是一个适用于Java开发人员用来检查架构规则的工具。你可以定制一个适合特定项目架构的规则文件,也可以为您的代码撰写通用的规则说明。
5. EMMA from http://emma.sourceforge.net/
- EMMA支持的覆盖类型:方法、类等。
- 输出报告的格式为:文本、HTML、XML。
- 输出报告可以高亮显示某些项目。
- EMMA不需要访问源代码,可以在输入类中减少调试的信息。
6. XRadar from http://xradar.sourceforge.net/
XRadar是一个开放的、为代码生成可扩展报告的工具。目前支持基于Java的所有系统。批量处理的框架可以用来生成HTML/SVG系统的报告。Xradar可以估量代码的大小、复杂性以及代码的重复性、依赖性等。
7. Hammurapi from http://www.hammurapi.com
Hammurapi是一款执行Java程序代码的自动检测工具。提供的实例中含有282条Hammurapi代码规则,提供了120多个Java类,这款所谓的检测工具,可以从三个级别来检测代码是否违背了编码标准。
8. Relief from http://www.workingfrog.org/
Relif是一款设计工具,为Java项目提供了崭新的面貌。我们可以充分发挥自己的能力来处理真实的实例——通过检测大小、形状、关系等来简化处理过程。
9. Hudson from http://hudson-ci.org/
Hudson 是一个持续集成工具,使用Java编写,运行在servlet容器中,比如Apache Tomcat或者或GlassFish应用服务器。它支持SCM工具,包括CVS、Subversion、Git和ClearCase。它可以执行Apache Ant、基于Apache Maven的项目、以及任意的shell脚本和 Windows批处理命令。
10. Cobertura fromhttp://cobertura.sourceforge.net/
Cobertura是一个免费的基于jcoverage的Java工具,用于计算代码被测试访问的百分比,它可以被用来确定Java程序中的缺少部分的测试覆盖率。
11. SonarSource from http://www.sonarsource.org/
Sonar是一个管理代码质量的开放平台。因此,它涵盖了代码质量的7个方面:架构与设计、重复、单元测试、复杂性、潜在错误、编码规则、评论。
英文原文:http://java.dzone.com/articles/java-tools-source-code
分享到:
相关推荐
【Java Web图书管理系统源代码详解】 Java Web技术是开发基于Web的应用程序的一种强大工具,尤其在构建企业级应用中有着广泛的应用。这个“图书管理系统”是利用Java Web技术实现的一个典型示例,它包含了数据库的...
源代码通常提供了学习和理解这些概念的直观途径,通过分析和运行代码,开发者可以更好地掌握Java Web开发的精髓。 首先,Java Web开发的核心是Servlet和JSP(JavaServer Pages)。Servlet是Java编写的小程序,它...
本文将深入探讨使用Java语言进行即时通讯工具的设计与开发过程,结合提供的源代码,帮助读者理解相关技术要点。 首先,我们需要了解基础环境配置。该项目基于Java 1.8版本,这是Java SE(标准版)的一个稳定版本,...
源代码分析: 1. **编程语言**:虽然未明确指出使用的编程语言,但常见的聊天软件通常基于Java、Python、C++、JavaScript(配合Node.js)或Swift(iOS)等语言开发。根据文件名“IMCS”,可能是“Instant Messaging...
Tomcat6作为一款经典的开源Java Servlet容器,其源代码的学习对于理解Java Web应用的运行机制、优化服务器性能以及解决实际问题具有重大价值。本篇文章将从以下几个方面详细介绍如何学习、运行和调试Tomcat6的源代码...
标题中的“基于Java开发的一款基于Netty的内网穿透工具”揭示了我们正在讨论的是一个使用Java编程语言,并且依赖于Netty框架的软件应用。Netty是一个高性能、异步事件驱动的网络应用程序框架,常用于开发服务器和...
- 熟悉Servlet源代码后,你可以更好地进行性能优化,例如通过实现`SingleThreadModel`接口或使用线程池来提高多线程环境下的效率。 - 学习如何使用Servlet进行错误处理、URL映射、请求参数解析等常见任务。 总之...
在本项目中,"JAVA一个简单的即时通讯工具的设计与开发(源代码+论文)"是一个针对计算机专业学生的毕业设计,旨在让学生掌握JAVA编程语言以及相关计算机网络技术,通过实际操作来理解即时通讯系统的构建过程。...
【标题】:“JAVA 开发jsp+基于JB的人事管理系统(源代码+论文)” 这个标题表明,这是一个关于Java技术在开发Web应用时的应用实例,具体是个人事管理系统。该系统利用了JavaServer Pages (JSP) 技术,以及JavaBeans ...
3. **源代码分析**: - **客户端**:Java客户端通常需要实现VNC协议的客户端部分,包括建立与服务器的连接,解析接收到的屏幕图像数据,并处理用户的输入事件,将这些事件转换为服务器可理解的指令。 - **服务器端...
本篇文章将深入解析一款名为"坦克大战"的游戏源代码,通过分析关键的类和方法,帮助读者理解游戏的基本架构和编程思路。以下是源代码中的主要文件及其功能概述。 1. **TankPanel.java**:这是游戏主面板类,它负责...
4. **源代码分析** - **Controller层**:主要包含处理HTTP请求的Servlet类,转发请求至对应的Service层方法。 - **Service层**:实现业务逻辑,调用DAO层完成数据库操作。 - **DAO层**:与数据库进行交互,通过...
这个源代码压缩包提供了Tomcat6的完整源码,对于开发者来说,深入理解其内部工作原理、优化性能或者定制功能都具有极大的价值。下面将详细介绍Tomcat6的一些关键知识点。 1. **Servlet容器**: Tomcat作为一个...
标题中的“用JAVA做的聊天软件,有安装程序和源代码.rar”表明这是一个基于Java编程语言开发的即时通讯软件项目。这个软件提供了安装程序,使得用户能够便捷地在计算机上部署和运行,同时附带了源代码,这对于学习者...
【JAVA课程设计学生成绩管理系统源代码】是一个典型的Java编程项目,主要针对大学生进行课程设计,目的是让学生在实践中掌握Java编程以及数据库管理技术。在这个项目中,学生将使用Java语言来开发一个完整的学生成绩...
源代码通常是编程人员之间的交流工具,通过阅读和分析源代码,我们可以深入理解软件的工作原理。对于"Http代理侦探",我们可以学习到以下知识点: 1. **HTTP协议**:HTTP(超文本传输协议)是互联网上应用最广泛的...
在Android开发领域,深入理解并调试Framework层的源代码对于优化系统性能、修复底层问题以及进行自定义系统开发至关重要。本实例将引导你探索如何有效地跟踪和调试Android Framework的源代码,助你在Android学习旅程...
【Java实验室管理系统源代码(源码+数据库)】 这个压缩包文件包含了一个完整的Java实验室管理系统的源代码和相应的数据库文件,对于学习Java编程、软件工程、数据库管理和理解企业级应用开发流程具有很高的参考价值...
在信息技术飞速发展的今天,JAVA办公自动化系统已经成为了企业提升工作效率、优化工作流程的重要工具。本系统基于jsp和java技术,提供了完整的源代码,不仅适用于毕业设计或课程设计,同时也是学习JAVA Web开发的...
通过分析这个仿360buy京东商城的JavaWeb项目源代码,开发者可以学习到如何构建大型、高性能的电商系统,以及Java Web开发的最佳实践。这不仅有助于提升个人技能,也有助于理解实际项目中的问题解决策略。