更新時(shí)間:2021-10-28 11:26:24 來源:動力節(jié)點(diǎn) 瀏覽2459次
Java代碼檢查工具有很多,小編來給大家進(jìn)行介紹:
這是一個(gè)很好的提高軟件質(zhì)量的工具(Eclipse 插件)。它具有下一個(gè)關(guān)鍵特性:代碼分析、JUnit 測試生成、JUnit 測試編輯器、類似代碼分析、指標(biāo)、代碼覆蓋率和依賴關(guān)系分析。
它掃描 Java 源代碼并查找潛在問題:可能的錯誤、死代碼、次優(yōu)代??碼、過度復(fù)雜的表達(dá)式和重復(fù)代碼。
它查找 Java 程序中的錯誤。它可以檢測各種常見的編碼錯誤,包括線程同步問題、API 方法的濫用等。
它是一個(gè)免費(fèi)的 Java 工具,用于計(jì)算測試訪問的代碼百分比。它可用于識別 Java 程序的哪些部分缺乏測試覆蓋率。它基于jcoverage。
是一個(gè)基于字節(jié)碼插裝的快速Java代碼覆蓋工具。它與現(xiàn)有工具的不同之處在于,它支持對大型企業(yè)軟件項(xiàng)目進(jìn)行覆蓋分析,同時(shí)強(qiáng)調(diào)快速的個(gè)人開發(fā)。
它是一種幫助程序員編寫符合編碼標(biāo)準(zhǔn)的 Java 代碼的開發(fā)工具。
JBoss Tattletale 是一種工具,可以幫助您大致了解您正在從事的項(xiàng)目或您依賴的產(chǎn)品。該工具將遞歸掃描 JAR 文件的目錄并生成鏈接和格式化的 HTML 報(bào)告。
UCDetector(Unecessary Code Detector)是一個(gè)開源的eclipse插件工具,用于查找不必要的(死的)java代碼。它還嘗試使代碼成為最終的、受保護(hù)的或私有的。UCDetector 還發(fā)現(xiàn)類之間的循環(huán)依賴。
Sonar 是Java 應(yīng)用程序的持續(xù)質(zhì)量控制工具。它在生活中的基本目的是加入您現(xiàn)有的持續(xù)集成工具,將您的所有開發(fā)項(xiàng)目置于質(zhì)量控制之下。
XRadar 是一種開放的可擴(kuò)展代碼報(bào)告工具,可生成系統(tǒng)當(dāng)前狀態(tài)和隨時(shí)間發(fā)展的 HTML/SVG 報(bào)告。使用 DependencyFinder、JDepend、PMD、PMD-CPD、JavaNCSS、Cobertura、Checkstyle、XSource、JUnit、Java2HTML、ant 和 maven。
QALab 整合來自 Checkstyle、PMD、FindBugs 和 Simian 的數(shù)據(jù),并將其顯示在一個(gè)整合的視圖中。QALab 會跟蹤隨時(shí)間發(fā)生的變化,從而讓您可以查看隨時(shí)間變化的趨勢。您可以根據(jù)天氣情況判斷違規(guī)次數(shù)的增加或減少——基于每個(gè)文件,或針對整個(gè)項(xiàng)目。它還繪制了這些數(shù)據(jù)的圖表。QALab 插入到 maven 或 ant。
Clirr 是一種工具,用于檢查 Java 庫與舊版本的二進(jìn)制和源代碼兼容性。基本上你給它兩組 jar 文件,然后 Clirr 轉(zhuǎn)儲出公共 api 中的更改列表。如果檢測到不兼容的 api 更改,可以將 Clirr Ant 任務(wù)配置為中斷構(gòu)建。在持續(xù)集成過程中,Clirr 可以自動防止意外引入二進(jìn)制或源代碼兼容性問題。
JDiff 是一個(gè) Javadoc doclet,當(dāng)比較兩個(gè) API 時(shí),它會生成包含以任何方式刪除、添加或更改的所有包、類、構(gòu)造函數(shù)、方法和字段的 HTML 報(bào)告,包括它們的文檔。這對于準(zhǔn)確描述產(chǎn)品的兩個(gè)版本之間發(fā)生的變化非常有用。僅比較每個(gè)版本的 API(應(yīng)用程序編程接口)。它不會比較源代碼在執(zhí)行時(shí)所做的事情。
它通過進(jìn)行數(shù)據(jù)流分析和構(gòu)建鎖圖來檢查您的 Java 代碼并發(fā)現(xiàn)錯誤、不一致和同步問題。
JDepend 遍歷 Java 類文件目錄并為每個(gè) Java 包生成設(shè)計(jì)質(zhì)量指標(biāo)。JDepend 允許您在可擴(kuò)展性、可重用性和可維護(hù)性方面自動衡量設(shè)計(jì)的質(zhì)量,以有效管理和控制包依賴性。
cloc 計(jì)算許多編程語言中源代碼的空行、注釋行和物理行。
Dependometer 對軟件系統(tǒng)內(nèi)的物理依賴性進(jìn)行靜態(tài)分析。Dependometer 根據(jù)將系統(tǒng)構(gòu)建為類、包、子系統(tǒng)、垂直切片和層的邏輯架構(gòu)來驗(yàn)證依賴關(guān)系,并檢測這些結(jié)構(gòu)元素之間的循環(huán)。此外,它計(jì)算不同抽象層上的許多質(zhì)量指標(biāo),并報(bào)告任何違反配置閾值的情況。
Hammurapi 是一個(gè)開源代碼檢查工具。它的發(fā)布附帶了 100 多個(gè)檢查員,他們檢查代碼的不同方面:符合 EJB 規(guī)范、線程問題、編碼標(biāo)準(zhǔn)等等。
JavaNCSS 是一個(gè)簡單的命令行實(shí)用程序,它測量 Java 編程語言的兩個(gè)標(biāo)準(zhǔn)源代碼指標(biāo)。為每個(gè)類和/或每個(gè)功能全局收集度量。
DCD 在您的 Java 應(yīng)用程序中查找死代碼。
Classycle 的 Analyzer 分析 Java 應(yīng)用程序或庫中的靜態(tài)類和包依賴關(guān)系。它對于查找類或包之間的循環(huán)依賴關(guān)系特別有用。Classycle 類似于 JDepend,后者也進(jìn)行依賴項(xiàng)分析,但僅在包級別進(jìn)行。
程序 ckjm通過處理編譯的 Java 文件的字節(jié)碼來計(jì)算 Chidamber 和 Kemerer 面向?qū)ο蟮亩攘俊T摮绦驗(yàn)槊總€(gè)類計(jì)算 Chidamber 和 Kemerer 提出的以下六個(gè)指標(biāo)。
Jameleon 是一個(gè)自動化測試框架,技術(shù)和非技術(shù)用戶都可以輕松使用。Jameleon 背后的一個(gè)主要概念是創(chuàng)建一組代表應(yīng)用程序不同屏幕的關(guān)鍵字或標(biāo)簽。自動化每個(gè)特定屏幕所需的所有邏輯都可以在 Java 中定義并映射到這些關(guān)鍵字。然后可以使用不同的數(shù)據(jù)集組織關(guān)鍵字以形成測試腳本,而無需深入了解應(yīng)用程序的工作原理。然后使用測試腳本來自動化測試并生成手動測試用例文檔。
DoctorJ 在以下功能領(lǐng)域分析 Java 代碼:文檔驗(yàn)證、統(tǒng)計(jì)生成和語法分析。
Macker 是面向 Java 開發(fā)人員的構(gòu)建時(shí)架構(gòu)規(guī)則檢查實(shí)用程序。它旨在為程序員總是為他們的項(xiàng)目夢想的架構(gòu)理想建模,然后打破——它有助于保持代碼干凈和一致。您可以定制一個(gè)規(guī)則文件以適應(yīng)特定項(xiàng)目的結(jié)構(gòu),或者為您的代碼編寫一些通用的“良好實(shí)踐”規(guī)則。Macker 不會試圖把其他人的規(guī)則塞進(jìn)你的喉嚨;它很靈活,編寫規(guī)則文件是每個(gè)獨(dú)特項(xiàng)目開發(fā)過程的一部分。
Squale 是一個(gè)質(zhì)量測量平臺,它允許分析多語言軟件應(yīng)用程序,以便對其質(zhì)量進(jìn)行清晰而全面的描述:高層管理人員的高級因素和開發(fā)團(tuán)隊(duì)的實(shí)用指標(biāo)。
免費(fèi)軟件程序 SourceMonitor 可讓您查看軟件源代碼內(nèi)部,以了解您擁有多少代碼并確定模塊的相對復(fù)雜性。例如,您可以使用 SourceMonitor 來識別最有可能包含缺陷并因此需要正式審查的代碼。
Panopticcode 項(xiàng)目提供了一套開源工具,用于收集、關(guān)聯(lián)和顯示代碼指標(biāo)。
為Eclipse 平臺提供指標(biāo)計(jì)算和依賴分析器插件。用平均偏差和標(biāo)準(zhǔn)偏差測量各種指標(biāo),并檢測包和類型依賴項(xiàng)中的循環(huán)并繪制它們。
QJ-Pro 是一款面向軟件開發(fā)人員的綜合軟件檢查工具。開發(fā)人員可以在編寫程序時(shí)自動檢查他們的 Java 源代碼并提高他們的 Java 編程技能。QJ-Pro 提供了描述性 Java 模式,解釋了容易出錯的代碼結(jié)構(gòu)并為其提供了解決方案。
Byecycle 是一個(gè)自動排列的Eclipse 依賴分析插件。它的目標(biāo)是當(dāng)你看到糟糕的代碼時(shí)讓你感到惡心,當(dāng)你看到好的代碼時(shí)讓你感到高興。
Coqua 測量了 5 個(gè)不同的 Java 代碼質(zhì)量指標(biāo),為管理人員提供了概述和歷史記錄,并為開發(fā)人員提供了深入代碼的詳細(xì)視圖。可以為每個(gè)團(tuán)隊(duì)定義指標(biāo)。非常適合大中型和/或海上項(xiàng)目。
從大多數(shù) Java 編譯器生成的 Java 類文件中提取依賴項(xiàng)和 OO 指標(biāo)。
Jalopy 是一種易于配置的源代碼格式化程序,它可以檢測和修復(fù)可能出現(xiàn)在 Java 代碼中的許多代碼約定缺陷。Jalopy 與其說是代碼檢查器,不如說是代碼修復(fù)器。Jalopy 插件適用于大多數(shù) IDE,并且在大多數(shù)情況下,它們與 IDE 無縫銜接。
JarAnalyzer 是一個(gè) .jar 文件的依賴管理工具。JarAnalyzer 將分析給定目錄中的所有 .jar 文件并確定每個(gè)文件之間的依賴關(guān)系。輸出格式包括 xml(包含將其轉(zhuǎn)換為 html 的樣式表)和 GraphViz DOT(允許您生成顯示 .jar 文件之間關(guān)系的可視組件圖)。xml 輸出包括重要的設(shè)計(jì)指標(biāo),例如傳入和傳出耦合、抽象性、不穩(wěn)定性和距離。還有一個(gè) Ant 任務(wù)可用,它允許您將 JarAnalyzer 作為構(gòu)建腳本的一部分。
Condenser 是一種用于查找和刪除重復(fù) Java 代碼的工具。與只定位重復(fù)代碼的工具不同,Condenser 的目標(biāo)是在安全的地方自動刪除重復(fù)代碼。
Relief 為 Java 項(xiàng)目提供了新的面貌。依靠我們通過檢查它們的形狀、大小或在空間中的相對位置來處理真實(shí)對象的能力,它提供了關(guān)于 java 包、類型和字段及其關(guān)系的“物理”視圖,使它們更容易處理。讓我們快速討論我們?nèi)绾谓忉屛锢韺傩砸约八绾螏椭覀冋莆枕?xiàng)目特征。
JCSC 是一個(gè)強(qiáng)大的工具,可以根據(jù)高度可定義的編碼標(biāo)準(zhǔn)和潛在的不良代碼檢查源代碼。該標(biāo)準(zhǔn)涵蓋了類、接口、字段、參數(shù)等的命名約定。還可以定義類型(類/接口)的結(jié)構(gòu)布局。就像放置字段的位置一樣,在方法之前或之后以及以什么順序。順序可以通過可見性或類型(實(shí)例、類、常量)來定義。這同樣適用于方法。這些規(guī)則中的每一個(gè)都是高度可定制的。通過定義在代碼中放置空格的位置以及何時(shí)使用大括號來增強(qiáng)可讀性。正確的JavaDoc 的存在可以被強(qiáng)制執(zhí)行和不同級別。除此之外,它還發(fā)現(xiàn)了代碼中的弱點(diǎn)——潛在的錯誤——比如空的 catch/finally 塊、沒有默認(rèn)值的 switch、拋出“異常”類型、緩慢的代碼。
Spoon 是一個(gè)完全支持 Java 5 的 Java 程序處理器。它提供了一個(gè)完整的、細(xì)粒度的 Java 元模型,可以訪問任何程序元素(類、方法、字段、語句、表達(dá)式……)以進(jìn)行讀取和修改。Spoon 可用于驗(yàn)證目的,通過使用純 Java 模板引擎來確保您的程序遵守某些編程約定或準(zhǔn)則,或用于程序轉(zhuǎn)換。
Lint4j('Lint for Java')是一個(gè)靜態(tài)Java源代碼和字節(jié)碼分析器,它檢測鎖定和線程問題、性能和可擴(kuò)展性問題,并通過執(zhí)行類型、數(shù)據(jù)流和鎖圖來檢查Java序列化等復(fù)雜契約分析。
Crap4j 是 CRAP(變更風(fēng)險(xiǎn)分析和預(yù)測)軟件指標(biāo)的 Java 實(shí)現(xiàn) - 一個(gè)溫和的指標(biāo)名稱,可幫助保護(hù)您免受真正令人反感的代碼的侵害。
Java PathFinder (JPF) 是一個(gè)驗(yàn)證可執(zhí)行Java 字節(jié)碼程序的系統(tǒng)。在其基本形式中,它是一個(gè) Java 虛擬機(jī) (JVM),用作顯式狀態(tài)軟件模型檢查器,系統(tǒng)地探索程序的所有潛在執(zhí)行路徑,以查找違反屬性的行為,例如死鎖或未處理的異常。與傳統(tǒng)調(diào)試器不同,JPF 報(bào)告導(dǎo)致缺陷的整個(gè)執(zhí)行路徑。JPF 特別適合在多線程程序中查找難以測試的并發(fā)缺陷
Soot 可用作優(yōu)化或檢查類文件的獨(dú)立工具,也可用作開發(fā) Java 字節(jié)碼優(yōu)化或轉(zhuǎn)換的框架。
Java 版本 2 的擴(kuò)展靜態(tài)檢查器 (ESC/Java2) 是一種Java編程工具,它試圖通過對程序代碼及其形式注釋的靜態(tài)分析來查找?guī)в?JML 注釋的 Java 程序中常見的運(yùn)行時(shí)錯誤。用戶可以通過使用稱為 pragma 的特殊格式注釋注釋他們的程序來控制 ESC/Java2 執(zhí)行的檢查數(shù)量和類型。
初級 202925
初級 203221
初級 202629
初級 203743