阅读更多

24顶
0踩

开源软件
本文将提供一些工具,帮助你优化代码以及检查源代码中的潜在问题。

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
24
0
评论 共 13 条 请登录后发表评论
13 楼 kawin 2014-11-21 18:19
收 藏 下都发生大幅度
12 楼 tobeornottobe 2013-04-07 16:59
谢谢分享,为什么没有Dotfuscator呢?我觉得这个还是不错的····
最近这个的厂商还有个代码分析技术交流会,有兴趣可以去了解一下
11 楼 guji528 2012-08-24 16:59
强大,收藏慢慢研究
10 楼 gnl 2011-08-04 11:46
资料,好东西
9 楼 yizhilong28 2011-08-02 19:23
PMD 不怎么好用
8 楼 dpuzhang 2011-08-02 16:57
希望以后能用到!
7 楼 dpuzhang 2011-08-02 16:57
 
  希望以后能用到!
6 楼 xchd-3 2011-08-02 11:49
怎么用?希望能给一些说明
5 楼 jyy524325 2011-08-02 10:32
收藏下先
4 楼 liberD 2011-08-02 09:34
这个不错。希望以后能用到!
3 楼 xifo 2011-08-02 09:20
为毛大名鼎鼎的CodePro Analytix没有包括?人家也开源了,换了Google这个新东家。
2 楼 jy00314996 2011-08-02 09:00
收藏下   
1 楼 LubinJava 2011-08-02 08:43
收下先..
   

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Oracle PUP(PRODUCT_USER_PROFILE)配置和使用

    最近在翻Oracle SQLPLUS官方文档,在讲SQLPLUS Security章节介绍了PUP这个机制。借此,我来使用以下: PUP(PRODUCT_USER_PROFILE)介绍   PRODUCT_USER_PROFILE是SYSTEM账户下一个表,可提供用户级别的安全限制。   PUP设置对DBA权限用户无效。   PUP只针对本地数据库生效(Local Database

  • oracle的user profile,Oracle PUP(PRODUCT_USER_PROFILE)配置和使用

    最近在翻Oracle SQLPLUS官方文档,在讲SQLPLUS Security章节介绍了PUP这个机制。借此,我来使用以下:PUP(PRODUCT_USER_PROFILE)介绍PRODUCT_USER_PROFILE是SYSTEM账户下一个表,可提供用户级别的安全限制。PUP设置对DBA权限用户无效。PUP只针对本地数据库生效(Local Database)。1、SYSTEM 用户创建PUP...

  • product 分区和权限

    permissions.xml文件必须与特权应用位于同一个分区中。----之前有遇到过,应用在product分区,然后在system分区的permissions.xml文件中声明签名/特权权限导致不生效。在特权应用/system分区中放置permissions.xml文件不会将这些权限扩展到/product分区中的特权应用,即使前者是后者的扩展也不例外。在Android9及更高版本中,权限和列入白名单过程的更改会影响product分区上授予特权应用权限的方式。...

  • 【Android 逆向】Android 权限 ( ro.product.cpu.abi 属性 | ro.zygote 属性 | dhcp.eth0 属性 | net.* 属性 )

    一、Android 权限相关的重要的系统属性、 1、ro.product.cpu.abi 属性、 2、ro.zygote 属性、 3、dhcp.eth0 属性、 4、net.* 属性、

  • 手动建库时一个错误:Error accessing PRODUCT_USER_PROFILE

    首先感谢前辈的文章:http://space.itpub.net/14184018/viewspace-691502 手动创建数据库完成后,创建新用户,并用新用户登陆到数据库时,报错如下: SYS@ bys3>conn bys/bys ERROR: ORA-00942: table or view does not exist Error accessing PRODUCT_US

  • 【实验】使用PRODUCT_USER_PROFILE禁止特定用户在SQL*Plus中使用delete语句

    【实验优先】1.在sys用户下执行脚本pupbld.sql使PRODUCT_USER_PROFILE可用pupbld.sql脚本所在目录为$ORACLE_HOME/sqlplus/admin/pupbld.sqlsys...

  • 用户画像(User Profile)概述

    推荐之用户画像【1】–概述 本文主要对构建用户画像(处理海量用户非结构化文本)的方法做大致汇总,整体结构参考刑无刀大佬,详细原理及代码持续更新ing 知乎链接:推荐之用户画像【1】–概述 - LynneS的文章 - 知乎 https://zhuanlan.zhihu.com/p/353403024 第一类 使用原始数据。 如注册资料等人口统计学信息,或者购买历史,阅读历史等,除了数据清洗等工作,数据本身并没有做任何抽象和归纳。跟查户口一样,没什么技术含量,但通常对于用户冷启动等场景非常有用。 第二类就

  • 【问题处理】Error accessing PRODUCT_USER_PROFILE错误一例

    1.问题现象再现1)创建用户secSQL> create user sec identified by sec;User created.2)授权SQL> grant connect,resource to sec;...

  • Product user profile information 没有导入

    问题: SQL> conn hr/hr Error accessing PRODUCT_USER_PROFILE Warning: Product user profile information not loaded! You may need to run PUPBLD.SQLas SYSTEM Connected. SQL> 问题分析: ...

  • 用户画像-User Profile

    @ 2018-05-27 1. 用户画像 1.1 什么是用户画像? 1.2 用户画像与推荐系统的关系 2. 用户画像的关键因素 3. 用户画像的构建方法 1. 用户画像 1.1 什么是用户画像? 用户画像常见对应两个英文词Personas和User Profile,Personas属于交互设计领域的概念,后者原本常用于营销领域,营销人员需要对营销的客户有更精准的认识...

  • 系统变量 %USERPROFILE%

    系统变量 %USERPROFILE%  (2016-03-27 16:01:39) 转载▼ 标签:  杂谈   可以用CMD的SET命令来查看现有的系统变量,“="前的部分用%括起来就是。 常用: %USERPROFILE% =C:\Users\用户名 %SystemRoot% =C:\WINDOWS %Syste

  • ORACLE Profile使用详解

     如何限制oracle中用户的资源的使用(包括连接时间和空闲时间等) 可以创建不同的资源限制,最好将ALTER SYSTEM SET RESOURCE_LIMIT=TRUE。写在init文件中:RESOURCE_LIMIT=TRUE ,不然下次启动可能失效。create profile low_limits limit           idle_time  10 --分钟   

  • 2018年最新PHP面试题

    面试之前多看看公司的资料,可以看出面试的公司主要做什么,电商,数据库,php函数,sql的优化,接口,session和cookie等经常会问到,都是必问之题,这其中有一部分题目摘抄自网络,回答也不错 1.请自我介绍一下? 答:我叫xxx,来自北京,20xx年毕业于xx大学计算机xx系,毕业后在武汉从事了x年的php开发工作,公司是一个外包公司,主要做微信开发,公众号推广,商城,论坛的开...

  • jQuery+ajax实现用户登录验证

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>登录界面</title> <style type="text/css"> *{ margin: 0; padding: 0; } h3{ display: block; width: 100%; height: 50px; te

  • ser_source 数据字典的试图,每个用户只能看到自己的user_source。

    ser_source 数据字典的试图,每个用户只能看到自己的user_source。 你可以通过dba帐号去创建一个VIEW, VIEW  的定义为: select * from dba_objects where object_type in ('PROCEDURE' ,'FUNCTION', 'PACKAGE') 把这个VIEW 赋予给用户。。

  • Xcode如何用个人苹果账户进行真机调试

    真机调试

  • Win 常用 系统变量

    %USERPROFILE%=C:\Users\用户名 %SystemRoot%=C:\WINDOWS %SystemDrive%=C: %APPDATA%=C:\Users\用户名\AppData\Roaming %LOCALAPPDATA%=C:\Users\用户名\AppData\Local %windir%=C:\WINDOWS %Path%=C:\Windows\system32;C:\Windows; %ProgramData%=C:\ProgramData ...

  • 查询dual表出错

    在oracle 10g数据库中,执行以下操作出错该如何解决? SQL> connect apm Enter password: SP2-0575: Use of Oracle SQL feature not in SQL92 Entry Level. Connected. SQL> select * from dual; select * from dual ...

Global site tag (gtag.js) - Google Analytics