阅读更多

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 第一类 使用原始数据。 如注册资料等人口统计学信息,或者购买历史,阅读历史等,除了数据清洗等工作,数据本身并没有做任何抽象和归纳。跟查户口一样,没什么技术含量,但通常对于用户冷启动等场景非常有用。 第二类就

  • 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> 问题分析: ...

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

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

  • 用户画像-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

  • CreateUserProfile

    以前的管理员留下了一个自定义的创建用户的webpart "createuserprofile",功能如下1. 确认userprofile是否存在,2. 如果userprofile不存在,则可以创建其Userprofile(因为我是用的windows认证,所以也会同时创建windows用户)3. 如果userprofile存在,则可以修改其详细信息。 组了一台测试的share

  • 14:django 用户认证系统

    django认证系统包含三个部分:用户、权限和分组 安装 django项目默认启用了认证系统,如果不是使用django-admin.py创建项目的可以通过在settings配置文件里面的INSTALLED_APPS的列表里面添加django.contrib.auth和django.contrib.contenttypes这两项然后运行manage.py syncdb命令创建对应的数据...

  • oracle数据库user_error,oracle中用户登录出现Error accessing PRODUCT_USER_PROFILE问题的解决方法...

    在oracle数据库实例中,刚刚创建的用户scott,登录时报告如下错误:sys@CNHTM> conn scott/tigerError accessing PRODUCT_USER_PROFILEWarning: Product user profile information not loaded!You may need to run PUPBLD.SQL as SYSTEMConn...

  • edit user profile - Action介绍

    这个Action钩子通常会在用户属性编辑页面需要输出新的字段或者在编辑页面底部添加更多内容的时候会使用到。

  • Django使用Profile扩展User模块

    Django使用Profile扩展User模块首先创建Profile应用python manage.py startapp profilesprofiles/models.py# -*- coding: utf-8 -*- from django.db import models from django.contrib.auth.models import User from django.db.m

  • 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 ...

  • oracle中用户登录出现Error accessing PRODUCT_USER_PROFILE问题的解决方法

    在oracle数据库实例中,刚刚创建的用户scott,登录时报告如下错误:sys@CNHTM> conn scott/tigerError accessing PRODUCT_USER_PROFILEWarning: Pr...

  • PROFILE的管理(资源文件)

     PROFILE的管理(资源文件)      当需要设置资源限制时,必须设置数据库系统启动参数RESOURCE_LIMIT,此参数默认值为FALSE      可以使用如下命令来启动当前资源限制:      alter system set RESOURCE_LIMIT=true;      当需要以后启动时也启动限制,必须在init.ora中设置      RESOURCE_LIMIT=true

Global site tag (gtag.js) - Google Analytics