阅读更多

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

  • Oracle PUP(PRODUCT_USER_PROFILE)配置和使用

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

  • product 分区和权限

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

  • 手动建库时一个错误: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...

  • 【问题处理】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> 问题分析: ...

  • ORACLE 用户、Profile 及权限

    用户管理一、创建用户:创建的新用户是没有任何权限的,甚至连登陆的数据库的权限都没有,需要为其指定相应的权限。 SQL> Create User username   Identified by password   Default Tablespace tablespace   Temporary Tablespace tablespace   Profile profile   Quota in

  • 访问 PRODUCT_USER_PROFILE 时出错 警告: 未加载产品用户概要文件信息!

    今天在oracle数据库中创建了一个普通 用户,但是在连接的时候报了错了 一般这个错误:一般这个错误都是手工建库的时候忘记做了一步才会报错的SYS@icsdb >conn ics/1q2w3eERROR:ORA-00942: ???????访问 PRODUCT_USER_PROFILE 时出错警告: 未加载产品用户概要文件信息!您需要将 PUPBLD.SQL 作为 SY...

  • 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 赋予给用户。。

  • (转)使用product_user_profile表来实现用户权限的设定

    我们要利用这张表来限制SCOTT用户不能执行DROP命令,即使SCOTT用户拥有DROP TABLE的权限。  SQL> insert into product_user_profile (   2 product, us...

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

    真机调试

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

  • Product_user_profile表

    Product_user_profile是system模式下的一个表,在此表中存在的数据可以让客户端程序登入的时候检查是否在命令的执行上有什么限制。 修改了product_user_profile内容,用户必须重新登录sql*plus,修改才会生效,也就是只有在登录的时候,sql*plus才会检查一遍product_user_profile表中内容。 SQL*Plus:   CO

  • oracle 出现pupbld.sql,Warning Product user profile information not loaded You may need to run PUPBLD....

    今天在测试用数据泵同时迁移多个SCHEMA时,遇到PRODUCT_USER_PROFILE警告。数据库版本为10.2.0.1.0 for OEL5.7 32bit。迁移命令如下:expdp system/oracle directory=xxx dumpfile=xxx.dmp schemas=dbdream,streamimpdp system/oracle directory=xxx dump...

  • Oracle XE 访问 PRODUCT_USER_PROFILE 时出错 处理

        大家好,今天在使用Oracle XE数据库的时候遇到了“访问 PRODUCT_USER_PROFILE 时出错,警告: 未加载产品用户概要文件信息!您需要将 PUPBLD.SQL 作为 SYSTEM 运行”的警告。下面为大家分析下,并说明我的解决方法:    在安装了Oracle XE 数据库之后,创建用户test   --创建表空间--extent management local un...

Global site tag (gtag.js) - Google Analytics