The Best Java Static Analysis Tools (Linters/Formatters)

We rank 120 Java linters, code analyzers, formatters, and more. Find and compare tools like Mega-Linter, Semgrep, Teamscale, and more. Please rate and review tools that you've used. This helps others find the best tools for their projects.

29 Java Tools

CogniCrypt

Checks Java source and byte code for incorrect uses of cryptographic APIs.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 100% upvoted

checkstyle

Checking Java source code for adherence to a Code Standard or set of validation rules (best practices).

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 100% upvoted

Checker Framework

Pluggable type-checking for Java. This is not just a bug-finder, but a verification tool that gives a guarantee of correctness. It comes with 27 pre-built type systems, and it enables users to define their own type system; the manual lists over 30 user-contributed type systems.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 100% upvoted

Spoon

Spoon is a metaprogramming library to analyze and transform Java source code (incl Java 9, 10, 11, 12, 13, 14). It parses source files to build a well-designed AST with powerful analysis and transformation API. Can be integrated in Maven and Gradle.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedformatter
  • 100% upvoted

SpotBugs

SpotBugs is FindBugs' successor. A tool for static analysis to look for bugs in Java code.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 100% upvoted

Soot

A framework for analyzing and transforming Java and Android applications.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 100% upvoted

Error Prone

Catch common Java mistakes as compile-time errors.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 100% upvoted

google-java-format

Reformats Java source code to comply with Google Java Style

  • MaintainedMaintained
  • MaintainedJava
  • MaintainedcliMaintainedide-plugin
  • Maintainedformatter
  • 100% upvoted

ckjm

Calculates Chidamber and Kemerer object-oriented metrics by processing the bytecode of compiled Java files.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 100% upvoted

Doop

Doop is a declarative framework for static analysis of Java/Android programs, centered on pointer analysis algorithms. Doop provides a large variety of analyses and also the surrounding scaffolding to run an analysis end-to-end (fact generation, processing, statistics, etc.).

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 100% upvoted

fb-contrib

A plugin for FindBugs with additional bug detectors.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 100% upvoted

JArchitect

Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 100% upvoted

NullAway

Type-based null-pointer checker with low build-time overhead; an Error Prone plugin.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 100% upvoted

qulice

Combines a few (pre-configured) static analysis tools (checkstyle, PMD, Findbugs, ...).

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 100% upvoted

Dataflow Framework

An industrial-strength dataflow framework for Java. The Dataflow Framework is used in the Checker Framework, Google’s Error Prone, Uber’s NullAway, Meta’s Nullsafe, and in other contexts. It is distributed with the Checker Framework.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 0% upvoted

DesigniteJava

DesigniteJava supports detection of various architecture, design, and implementation smells along with computation of various code quality metrics.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 0% upvoted

Diffblue

Diffblue is a software company that provides AI-powered code analysis and testing solutions for software development teams. Its technology helps developers automate testing, find bugs, and reduce manual labor in their software development processes. The company's main product, Diffblue Cover, uses AI to generate and run unit tests for Java code, helping to catch errors and improve code quality.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedservice
  • Maintainedlinter
  • 0% upvoted

forbidden-apis

Detects and forbids invocations of specific method/class/field (like reading from a text stream without a charset). Maven/Gradle/Ant compatible.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 0% upvoted

IntelliJ IDEA

Comes bundled with a lot of inspections for Java and Kotlin and includes tools for refactoring, formatting and more.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedide-plugin
  • Maintainedformatter
  • 0% upvoted

JBMC

Bounded model-checker for Java (bytecode), verifies user-defined assertions, standard assertions, several coverage metric analyses.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 0% upvoted

Mariana Trench

Our security focused static analysis tool for Android and Java applications. Mariana Trench analyzes Dalvik bytecode and is built to run fast on large codebases (10s of millions of lines of code). It can find vulnerabilities as code changes, before it ever lands in your repository.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 0% upvoted

OWASP Dependency Check

Checks dependencies for known, publicly disclosed, vulnerabilities.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 0% upvoted

RefactorFirst

Identifies and prioritizes God Classes and Highly Coupled classes in Java codebases you should refactor first.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 0% upvoted

steady

Analyses your Java applications for open-source dependencies with known vulnerabilities, using both static analysis and testing to determine code context and usage for greater accuracy.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 0% upvoted

Violations Lib

Java library for parsing report files from static code analysis. Used by a bunch of Jenkins, Maven and Gradle plugins.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 0% upvoted

Java PathFinder

An extensible software model checking framework for Java bytecode programs.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 0% upvoted

Parasoft Jtest

Jtest is an automated Java software testing and static analysis product that is made by Parasoft. The product includes technology for Data-flow analysis Unit test-case generation and execution, static analysis, regression testing, code coverage, and runtime error detection.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 0% upvoted

ck

Calculates Chidamber and Kemerer object-oriented metrics by processing the source Java files.

  • MaintainedMaintained
  • MaintainedJava
  • Maintainedcli
  • Maintainedlinter
  • 0% upvoted

HuntBugs

Bytecode static analyzer tool based on Procyon Compiler Tools aimed to supersede FindBugs.

  • DeprecatedDeprecated
  • DeprecatedJava
  • Deprecatedcli
  • Deprecatedlinter
  • 0% upvoted

91 Multi-Language Tools

Mega-Linter

Mega-Linter can handle any type of project thanks to its 70+ embedded Linters, its advanced reporting, runnable on any CI system or locally, with assisted installation and configuration, able to apply formatting and fixes

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedcli
  • Maintainedlinter
  • 68% upvoted

Semgrep

Sponsor

A fast, open-source, static analysis tool for finding bugs and enforcing code standards at editor, commit, and CI time. Its rules look like the code you already write; no abstract syntax trees or regex wrestling. Supports 17+ languages.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • MaintainedcliMaintainedservice
  • Maintainedlinter
  • 82% upvoted

Teamscale

Static and dynamic analysis tool supporting more than 25 languages and direct IDE integration. Free hosting for Open Source projects available on request. Free academic licenses available.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • MaintainedserviceMaintainedide-plugin
  • Maintainedlinter
  • 80% upvoted

SonarQube

SonarQube empowers development teams with a code quality and security solution that deeply integrates into your enterprise environment; enabling you to deploy clean code consistently and reliably. SonarQube provides a free and open source Community Edition.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedservice
  • Maintainedlinter
  • 70% upvoted

Bearer

Sponsor

Open-Source static code analysis tool to discover, filter and prioritize security risks and vulnerabilities leading to sensitive data exposures (PII, PHI, PD). Highly configurable and easily extensible, built for security and engineering teams.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedcli
  • Maintainedlinter
  • 96% upvoted

Sonatype

Reports known vulnerabilities in common dependencies and recommends updated packages to minimize breaking changes

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedservice
  • Maintainedlinter
  • 77% upvoted

ThreatMapper

Vulnerability Scanner and Risk Evaluation for containers, serverless and hosts at runtime. ThreatMapper generates runtime BOMs from dependencies and operating system packages, matches against multiple threat feeds, scans for unprotected secrets, and scores issues based on severity and risk-of-exploit.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedservice
  • Maintainedlinter
  • 91% upvoted

CodeScene

Sponsor

CodeScene is a quality visualization tool for software. Prioritize technical debt, detect delivery risks, and measure organizational aspects. Fully automated.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedservice
  • Maintainedlinter
  • 66% upvoted

PVS-Studio

A (conditionally free for FOSS and individual developers) static analysis of C, C++, C# and Java code. For advertising purposes you can propose a large FOSS project for analysis by PVS employees. Supports CWE mapping, OWASP ASVS, MISRA, AUTOSAR and SEI CERT coding standards.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedservice
  • Maintainedlinter
  • 90% upvoted

SAST Online

Check the Android Source code thoroughly to uncover and address potential security concerns and vulnerabilities. Static application security testing (Static Code Analysis) tool Online

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedservice
  • Maintainedlinter
  • 93% upvoted

trunk

Modern repositories include many technologies, each with its own set of linters. With 30+ linters and counting, Trunk makes it dead-simple to identify, install, configure, and run the right linters, static analyzers, and formatters for all your repos.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedcli
  • MaintainedlinterMaintainedformatter
  • 88% upvoted

Coverity

Synopsys Coverity supports 20 languages and over 70 frameworks including Ruby on rails, Scala, PHP, Python, JavaScript, TypeScript, Java, Fortran, C, C++, C#, VB.NET.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedcli
  • Maintainedlinter
  • 66% upvoted

Better Code Hub

Better Code Hub checks your GitHub codebase against 10 engineering guidelines devised by the authority in software quality, Software Improvement Group.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedservice
  • Maintainedlinter
  • 77% upvoted

DeepCode

DeepCode was acquired by Snyk is now Snyk Code.

  • DeprecatedDeprecated
  • DeprecatedMulti-Language
  • Deprecatedservice
  • Deprecatedlinter
  • 61% upvoted

Infer

A static analyzer for Java, C and Objective-C

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedcli
  • Maintainedlinter
  • 88% upvoted

Codacy

Code Analysis to ship Better Code, Faster.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedservice
  • Maintainedlinter
  • 71% upvoted

PMD

A source code analyzer for Java, Salesforce Apex, Javascript, PLSQL, XML, XSL and others.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedcli
  • Maintainedlinter
  • 78% upvoted

codeql

Deep code analysis - semantic queries and dataflow for several languages with VSCode plugin support.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • MaintainedserviceMaintainedide-plugin
  • Maintainedlinter
  • 85% upvoted

ArchUnit

Unit test your Java or Kotlin architecture.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedcli
  • Maintainedlinter
  • 100% upvoted

Codeac

Automated code review tool integrates with GitHub, Bitbucket and GitLab (even self-hosted). Available for JavaScript, TypeScript, Python, Ruby, Go, PHP, Java, Docker, and more. (open-source free)

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedservice
  • Maintainedlinter
  • 89% upvoted

Checkmarx CxSAST

Commercial Static Code Analysis which doesn't require pre-compilation.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedcli
  • Maintainedlinter
  • 56% upvoted

Klocwork

Quality and Security Static analysis for C/C++, Java and C#.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedservice
  • Maintainedlinter
  • 100% upvoted

Offensive 360

Sponsor

Commercial Static Code Analysis system doesn't require building the source code or pre-compilation.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedservice
  • Maintainedlinter
  • 86% upvoted

Application Inspector

Commercial Static Code Analysis which generates exploits to verify vulnerabilities.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedservice
  • Maintainedlinter
  • 75% upvoted

Axivion Bauhaus Suite

Tracks down error-prone code locations, style violations, cloned or dead code, cyclic dependencies and more for C/C++, C#/.NET, Java and Ada 83/Ada 95.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedcli
  • Maintainedlinter
  • 70% upvoted

CodeSonar from GrammaTech

Advanced, whole program, deep path, static analysis of C, C++, Java and C# with easy-to-understand explanations and code and path visualization.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedcli
  • Maintainedlinter
  • 70% upvoted

Android Studio

Based on IntelliJ IDEA, and comes bundled with tools for Android including Android Lint.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedide-plugin
  • Maintainedlinter
  • 100% upvoted

Atom-Beautify

Beautify HTML, CSS, JavaScript, PHP, Python, Ruby, Java, C, C++, C#, Objective-C, CoffeeScript, TypeScript, Coldfusion, SQL, and more in Atom editor.

  • DeprecatedDeprecated
  • DeprecatedMulti-Language
  • Deprecatedide-plugin
  • Deprecatedlinter
  • 64% upvoted

Codiga

Automated Code Reviews and Technical Debt management platform that supports 12+ languages.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedservice
  • Maintainedlinter
  • 80% upvoted

Find Security Bugs

The SpotBugs plugin for security audits of Java web applications and Android applications. (Also work with Kotlin, Groovy and Scala projects)

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedcli
  • Maintainedlinter
  • 71% upvoted

Kiuwan

Identify and remediate cyber threats in a blazingly fast, collaborative environment, with seamless integration in your SDLC. Python, C\C++, Java, C#, PHP and more.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedservice
  • Maintainedlinter
  • 67% upvoted

Svace

Static code analysis tool for Java,C,C++,C#,Go.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedcli
  • Maintainedlinter
  • 100% upvoted

TencentCodeAnalysis

Tencent Cloud Code Analysis (TCA for short, code-named CodeDog inside the company early) is a comprehensive platform for code analysis and issue tracking. TCA consist of three components, server, web and client. It integrates of a number of self-developed tools, and also supports dynamic integration of code analysis tools in various programming languages.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • MaintainedcliMaintainedservice
  • Maintainedlinter
  • 100% upvoted

Unibeautify

Universal code beautifier with a GitHub app. Supports HTML, CSS, JavaScript, TypeScript, JSX, Vue, C++, Go, Objective-C, Java, Python, PHP, GraphQL, Markdown, and more.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • MaintainedcliMaintainedservice
  • Maintainedformatter
  • 67% upvoted

lizard

Lizard is an extensible Cyclomatic Complexity Analyzer for many programming languages including C/C++ (doesn't require all the header files or Java imports). It also does copy-paste detection (code clone detection/code duplicate detection) and many other forms of static code analysis. Counts lines of code without comments, CCN (cyclomatic complexity number), token count of functions, parameter count of functions.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedcli
  • Maintainedlinter
  • 100% upvoted

Pixee

Pixeebot finds security and code quality issues in your code and creates merge-ready pull requests with recommended fixes.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedservice
  • 100% upvoted

pre-commit

A framework for managing and maintaining multi-language pre-commit hooks.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedcli
  • Maintainedlinter
  • 100% upvoted

Scrutinizer

A proprietary code quality checker that can be integrated with GitHub.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedservice
  • Maintainedlinter
  • 100% upvoted

Synopsys

A commercial static analysis platform that allows for scanning of multiple languages (C/C++, Android, C#, Java, JS, PHP, Python, Node.JS, Ruby, Fortran, and Swift).

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedcli
  • Maintainedlinter
  • 75% upvoted

todocheck

Linter for integrating annotated TODOs with your issue trackers

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedcli
  • Maintainedlinter
  • 67% upvoted

Undebt

Language-independent tool for massive, automatic, programmable refactoring based on simple pattern definitions.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedcli
  • Maintainedlinter
  • 100% upvoted

AppChecker

Static analysis for C/C++/C#, PHP and Java.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedcli
  • Maintainedlinter
  • 100% upvoted

Betterscan

Betterscan.io - Betterscan.io checks your code and infra (various Git repositories supported, cloud stacks, CLI, Web Interface platform, integrationss available) for security and quality issues. Code Scanning/SAST/Linting using many tools/Scanners deduplicated with One Report (AI optional). Free to use in noncommerical way, commercial requires license.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedservice
  • Maintainedlinter
  • 100% upvoted

CodeSee

CodeSee is mapping and automating your app's services, directories, file dependencies, and code changes. It's like Google Map, but for code.t

  • MaintainedMaintained
  • MaintainedMulti-Language
  • MaintainedserviceMaintainedide-plugin
  • Maintainedlinter
  • 100% upvoted

Fortify

A commercial static analysis platform that supports the scanning of C/C++, C#, VB.NET, VB6, ABAP/BSP, ActionScript, Apex, ASP.NET, Classic ASP, VB Script, Cobol, ColdFusion, HTML, Java, JS, JSP, MXML/Flex, Objective-C, PHP, PL/SQL, T-SQL, Python (2.6, 2.7), Ruby (1.9.3), Swift, Scala, VB, and XML.

  • MaintainedMaintained
  • MaintainedMulti-Language
  • Maintainedide-plugin
  • Maintainedlinter
  • 51% upvoted

Hopper

A static analysis tool written in scala for languages that run on JVM.

  • DeprecatedDeprecated
  • DeprecatedMulti-Language
  • Deprecatedcli
  • Deprecatedlinter
  • 100% upvoted

pfff

Facebook's tools for code analysis, visualizations, or style-preserving source transformation for many languages.

  • Deprecated