
正文
java代码静态分析工具 java 静态分析
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
程序静态分析的著名的静态分析工具
Meta-Compilation(Coverity)
由Stanford大学的Dawson Engler副教授等研究开发java代码静态分析工具,该静态分析工具允许用户使用一种称作metal的状态机语言编写自定义的时序规则java代码静态分析工具,从而实现了静态分析工具的可扩展性。MC的实际效果非常优秀,号称在Linux内核中找出来数百个安全漏洞。MC目前已经商业化,属于Coverity Inc.2014年被Synopsys收购。目前学术领域比较认可的静态分析工具,其技术处于领先地位。
mygcc 由一个法国人N. Volanschi开发,其思想来源于MC,试图将自定义的错误检测集成到编译时。
Klocwork
国内用的最为广泛的静态分析工具,由加拿大北电于1996年研发,是中国最早的能够检测语义缺陷的静态分析工具。截止到2015年其版本号为V10,也就是大家常说的K10
LDRA Testbed
英国的编码规则类检测工具,前身为Liverpool大学开发,能够支持C/C++数千种条目的规则检测,包括MISRA C/C++, GJB5369等,是最早进入中国市场的静态分析工具,在军队、军工广泛使用,但其技术仅支持风格类检测,无法进行语义缺陷分析,导致一些常用的运行时缺陷无法发现或者较高误漏报,由此市场占有率逐步下降。截止到2015年其版本号为9.5
HP Fortify
美国HP公司的支持安全漏洞类的检测工具,能够检测C/C++/Java/PHP/ASP/JavaScript等多种语言,数千种检测项,是国内使用最为广泛的静态分析工具。但该工具整体的误报漏报率较高,虽然支持很多种安全漏洞,但需要用户做很多的二次开发工作。
Cobot(库博)
北京大学软件工程中心研发的静态分析工具,能够支持编码规则,语义缺陷的程序分析,能够支持C/C++数千条规则和缺陷的检测,是java代码静态分析工具我国唯一可以称的上是静态分析产品的商业化工具。由于其自主知识产权,对国内的操作系统,编码标准支持的较好,检测精度也基本与上述工具持平,所以也得到了很多用户的认可。
Parasoft C++Test
美国Parasoft公司研发的支持C、C++静态分析的工具,该工具除了可以检测编码规则外,还能检测少量的语义缺陷,此外能够进行测试用例生成。
相关问答
Q1: findbugs,pmd,checkstyles三者都是代码规范静态检查工具,它们之间有何异同
区别是: findbug与pclint都是针对软件漏洞进行代码检测的工具软件。findbug针对的是Java代码,pclint针对的是C代码或者C++。 Findbugs是一款Java静态代码分析工具,与其他静态分析工具(如Checkstyle和PMD)不同,Findbugs 不注重样式或者格式
Q2: 你常用的Java工具库都有哪些
Java SDK 肯定是使用最广的库,所以本文的名单焦点是流行的第三方库。该列表可能并不完善,所以如果你觉得有什么应该出现在列表中的,请留下您的评论。非常感谢!
1、核心库
Apache Commons Lang:来自Apache的核心库,为java.lang API补充了许多常用的工具类,如字符串操作、对象的创建等。
Google Guava:来自谷歌的核心库,包括集合(Collection)、缓存(Caching)、支持原语(Primitives)等。(示例)
2、HTML、XML Parser
Jsoup:一个简化了的 HTML操作的库。(示例)
STaX:一组可以高效处理 XML的API。 (示例)
3、Web框架
Spring:Java平台上众所周知的开源框架和依赖注入容器。(示例)
Struts2:来自Apache的流行Web框架。 (示例)
Google Web Toolkit:Google提供的开发工具库,主要用于构建和优化复杂的Web程序用。 (示例)
Strips:使用最新Java技术构建的Web程序框架,推荐使用。
Tapestry:面向组件的框架,用于使用Java创建动态、健壮、扩展性高的Web应用程序。
请猛击这里 查看以上面框架之间的比较。
4、图表、报表、图像
JFreeChart:用于创建如条形图、折线图、饼图等图表。
JFreeReport:创建于输出PDF格式的报表。
JGraphT:创建图像,其中只包含由线段连接的点集。
5、窗口
Swing:SDK提供的GUI库。(示例)
SWT:eclipse提供的GUI库。
SWT与Swing的比较。
6.、GUI框架
Eclipse RCP。(示例)
7、自然语言处理
OpenNLP:来自Apache的自然语言处理库。 (示例)
Stanford Parser:斯坦福大学提供的自然语言处理库。(示例)
如果你是一名NLP专家,请猛击这里 查看更多工具库介绍。
8、静态分析
Eclipse JDT:由IBM提供的静态分析库,可以操作Java源代码。(示例)
WALA:可以处理jar包文件(即字节码)的工具库。(示例)
9、JSON
Jackson: 用于处理JSON数据格式的多用途的Java库。Jackson 旨在快速、准确、轻量、对开人员友好之间找到最好的平衡点。
XStream:一个简单用于对象和XML互相转换的库。
Google Gson:一个专门用于Java对象和Json对象相互转换的工具库。(示例)
JSON-lib:用于 beans、maps、collections、java arrays、XML 和 JSON 之间相互转换操作的工具库。
10、数学
Apache Commons Math:提供数学计算和数值统计需函数的工具库。
11、日志
Apache Log4j:风行一时的日志记录操作库。 (示例)
Logback:当前流行的log4j项目的继任者。
SLF4J(The Simple Logging Facade for Java): 各种日志框架的一个简单的外观或抽象(如java.util.logging 、logback、log4j等),允许用户在部署时加入需要的日志框架。
12、Office
Apache POI:利用其提供的APIs,可以使用纯Java代码操作各种基于微软OLE2合成文档格式的文档。
Docx4j:一个用于创建、操作微软公开的XML文件的库(支持Word docx、 Powerpoint pptx和Excel xlsx)。
13、日期和时间
Joda-Time:如有质量问题包退包换的Java日期和时间类。
14、数据库
Hibernate、EclipseLink、JPA
JDO
jOOQ
SpringJDBC、Spring Data
Apache DbUtils
15、开发工具
Lambok: 旨在减少代码编写的Java开发库。
java代码静态分析工具的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 静态分析、java代码静态分析工具的信息别忘了在本站进行查找喔。






