Analysis tools logo

104 Java Static Analysis Tools

Type:
Any

What is Java?

Java is a class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let application developers write once, run anywhere ... meaning that compiled Java code can run on all platforms that support Java without the need for recompilation. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of the underlying computer…

(More info)

What are the best Java analysis tools?

113

Mega-Linter

  • Type: cli
955

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

79

Teamscale

  • Type: service
  • Type: ide-plugin

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.

69

Semgrep

  • Type: cli
  • Type: service
7445

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.

49
48

Sonatype

  • Type: service

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

32

CogniCrypt

  • Type: cli
57

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

25

ThreatMapper

  • Type: service
  • Type: web
2468

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.

24

CodeScene

  • Type: service

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

20

PVS-Studio

  • Type: service

A ([conditionally free](https://pvs-studio.com/en/order/open-source-license) 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](https://github.com/viva64/pvs-studio-check-list). Supports CWE mapping, OWASP ASVS, MISRA, AUTOSAR and SEI CERT coding standards.

20

ShiftLeft

  • Type: service

Identify vulnerabilities that are unique to your code base before they reach production. Leverages the Code Property Graph (CPG) to run its analyses concurrently in a single graph of graphs. Automatically finds business logic flaws in dev like hardcoded secrets and logic bombs

18

Coverity

  • Type: cli

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.

14

Better Code Hub

  • Type: service

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

13

DeepCode

  • Type: service

DeepCode was acquired by Snyk is now Snyk Code.

10

Infer

  • Type: cli
13692

A static analyzer for Java, C and Objective-C

10

trunk

  • Type: cli

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.

8

ArchUnit

  • Type: cli
2480

Unit test your Java or Kotlin architecture.

8

checkstyle

  • Type: cli
7404

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

8

PMD

  • Type: cli
4079

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

7

Checker Framework

  • Type: cli
872

Pluggable type-checking for Java.

6

Codeac

  • Type: service

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)

5

Klocwork

  • Type: service

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

5

Scanmycode CE (Community Edition)

  • Type: service
337

Scanmycode - Code Scanning/SAST/Linting using many tools/Scanners with One Report

5

Spoon

  • Type: cli
1415

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.

5

SpotBugs

  • Type: cli
2899

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

5

CodeSonar from GrammaTech

  • Type: cli

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

4

Application Inspector

  • Type: service

Commercial Static Code Analysis which generates exploits to verify vulnerabilities.

4

Unibeautify

  • Type: cli
  • Type: service
528

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.

3

Axivion Bauhaus Suite

  • Type: cli

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.

3

codeql

  • Type: service
  • Type: ide-plugin

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

3

Error-prone

  • Type: cli
6240

Catch common Java mistakes as compile-time errors.

3

Find Security Bugs

  • Type: cli
2001

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

3

Fortify

  • Type: ide-plugin

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.

3

Soot

  • Type: cli
2457

A framework for analyzing and transforming Java and Android applications.

2

Android Studio

  • Type: ide-plugin

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

2

google-java-format

  • Type: cli
4750

Google Style Reformat.

2

Kiuwan

  • Type: service

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.

2

ocular

  • Type: service

Enables code auditors and security teams to interactively investigate their unique code bases to find business logic flaws and technical vulnerabilities that traditional SASTs cannot. This is done by enabling the analyst to write their own custom queries. Can find hard-coded secrets, authentication issues, and malicious code like rootkits and backdoors.

2

todocheck

  • Type: cli
395

Linter for integrating annotated TODOs with your issue trackers

2

Codiga

  • Type: service

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

1

AppChecker

  • Type: cli

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

1

ApplicationInspector

  • Type: cli
4012

Creates reports of over 400 rule patterns for feature detection (e.g. the use of cryptography or version control in apps).

1

Atom-Beautify

  • Type: ide-plugin
1505

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

1

ckjm

  • Type: cli
80

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

1

CodeFlow

  • Type: service

Automated code analysis tool to deal with technical depth. Integrates with Bitbucket and Gitlab. (free for Open Source Projects)

1

Doop

  • Type: cli

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

1

fb-contrib

  • Type: cli
132

A plugin for FindBugs with additional bug detectors.

1

lizard

  • Type: cli
1476

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.

1

NullAway

  • Type: cli
3203

Type-based null-pointer checker with low build-time overhead; an [Error Prone](http://errorprone.info/) plugin.

1

pre-commit

  • Type: cli
9271

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

1

Svace

  • Type: cli

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

1

Undebt

  • Type: cli
1637

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

1

Upsource

  • Type: service

Code review tool with static code analysis and code-aware navigation for Java, PHP, JavaScript and Kotlin.

1

WhiteHat Application Security Platform

  • Type: cli

WhiteHat Scout (for Developers) combined with WhiteHat Sentinel Source (for Operations) supporting WhiteHat Top 40 and OWASP Top 10.

0

CAST Highlight

  • Type: cli

Commercial Static Code Analysis which runs locally, but uploads the results to its cloud for presentation.

0

ck

  • Type: cli
276

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

0

ClassGraph

  • Type: cli
2340

A classpath and module path scanner for querying or visualizing class metadata or class relatedness.

0

coala

  • Type: cli
3400

Language independent framework for creating code analysis - supports [over 60 languages](https://coala.io/languages) by default.

0

codeburner

  • Type: cli
82

Provides a unified interface to sort and act on the issues it finds.

0

Code Intelligence

  • Type: service

CI/CD-agnostic DevSecOps platform which combines industry-leading fuzzing engines for finding bugs and visualizing code coverage

0

CodePatrol

  • Type: service

Automated SAST code reviews driven by security, supports 15+ languages and includes security training.

0

Depends

  • Type: cli
140

Analyses the comprehensive dependencies of code elements for Java, C/C++, Ruby.

0

DesigniteJava

  • Type: cli

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

0

forbidden-apis

  • Type: cli
279

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

0

Goodcheck

  • Type: cli
142

Regexp based customizable linter.

0

graudit

  • Type: cli
1167

Grep rough audit - source code auditing tool.

0

IntelliJ IDEA

  • Type: ide-plugin

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

0

JArchitect

  • Type: cli

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

0

JBMC

  • Type: cli

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

0

Offensive 360

  • Type: web

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

0

OWASP Dependency Check

  • Type: cli
4619

Checks dependencies for known, publicly disclosed, vulnerabilities.

0

Pronto

  • Type: cli
2522

Quick automated code review of your changes. Supports more than 40 runners for various languages, including Clang, Elixir, JavaScript, PHP, Ruby and more.

0

qulice

  • Type: cli
285

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

0

relint

  • Type: cli
40

A static file linter that allows you to write custom rules using regular expressions (RegEx).

0

RIPS

  • Type: cli

A static source code analyser for vulnerabilities in PHP scripts.

0

Scrutinizer

  • Type: service

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

0

Security Code Scan

  • Type: ide-plugin
805

Security code analyzer for C# and VB.NET. Detects various security vulnerability patterns: SQLi, XSS, CSRF, XXE, Open Redirect, etc. Integrates into Visual Studio 2015 and newer. Detects various security vulnerability patterns: SQLi, XSS, CSRF, XXE, Open Redirect, etc.

0

Semgrep Supply Chain

  • Type: service

Quickly find and remediate high-priority security issues. Semgrep Supply Chain prioritizes the 2% of vulnerabilities that are reachable from your code.

0

Sigrid

  • Type: cli
  • Type: service

Sigrid helps you to improve your software by measuring your system's code quality, and then compares the results against a benchmark of thousands of industry systems to give you concrete advice on areas where you can improve.

0

Similarity Tester

  • Type: service

A tool that finds similarities between or within files to support you encountering DRY principle violations.

0

Snyk Code

  • Type: service

Snyk Code finds security vulnerabilities based on AI. Its speed of analysis allow us to analyse your code in real time and deliver results when you hit the save button in your IDE. Supported languages are Java, JavaScript, Python, PHP, C#, Go and TypeScript. Integrations with GitHub, BitBucket and Gitlab. It is free to try and part of the Snyk platform also covering SCA, containers and IaC.

0

SonarCloud

  • Type: service

Multi-language cloud-based static code analysis. History, trends, security hot-spots, pull request analysis and more. Free for open source.

0

Soto Platform

  • Type: cli

Suite of static analysis tools consisting of the three components Sotoarc (Architecture Analysis), Sotograph (Quality Analysis), and Sotoreport (Quality report). Helps find differences between architecture and implementation, interface violations (e.g. external access of private parts of subsystems, detection of all classes, files, packages and subsystems which are strongly coupled by cyclical relationships and more. The Sotograph product family runs on Windows and Linux.

0

SourceMeter

  • Type: cli

Static Code Analysis for C/C++, Java, C#, Python, and RPG III and RPG IV versions (including free-form).

0

Synopsys

  • Type: cli

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

0

TencentCodeAnalysis

  • Type: service
  • Type: cli
1322

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.

0

Veracode

  • Type: cli

Find flaws in binaries and bytecode without requiring source. Support all major programming languages: Java, .NET, JavaScript, Swift, Objective-C, C, C++ and more.

0

Violations Lib

  • Type: cli
127

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

0

WALA

  • Type: cli
597

Static analysis capabilities for Java bytecode and related languages and for JavaScript.

-1

APPscreener

  • Type: cli

Static code analysis for binary and source code - Java/Scala, PHP, Javascript, C#, PL/SQL, Python, T-SQL, C/C++, ObjectiveC/Swift, Visual Basic 6.0, Ruby, Delphi, ABAP, HTML5 and Solidity.

-1

emerge

  • Type: cli
  • Type: web
386

Emerge is a source code and dependency visualizer that can be used to gather insights about source code structure, metrics, dependencies and complexity of software projects. After scanning the source code of a project it provides you an interactive web interface to explore and analyze your project by using graph structures.

-1

LGTM

  • Type: service

Find security vulnerabilities, variants, and critical code quality issues using CodeQL queries over source code. Automatic PR code review; free for open source. Formerly semmle. It supports public Git repositories hosted on Bitbucket Cloud, GitHub.com, GitLab.com.

-2

DevSkim

  • Type: ide-plugin
759

Regex-based static analysis tool for Visual Studio, VS Code, and Sublime Text - C/C++, C#, PHP, ASP, Python, Ruby, Java, and others.

-2

Understand

  • Type: cli

Code visualization tool that provides code analysis, standards testing, metrics, graphing, dependency analysis and more for Ada, VHDL, and others.

-3

ShiftLeft Scan

  • Type: cli
  • Type: service
548

Scan is a free open-source DevSecOps platform for detecting security issues in source code and dependencies. It supports a broad range of languages and CI/CD pipelines.

-4

Embold

  • Type: service

Intelligent software analytics platform that identifies design issues, code issues, duplication and metrics. Supports Java, C, C++, C#, JavaScript, TypeScript, Python, Go, Kotlin and more.

Deprecated/unmaintained tools

1

pfff

  • Type: cli
190

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

0

Hopper

  • Type: cli
54

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

0

PT.PM

  • Type: cli
58

An engine for searching patterns in the source code, based on Unified AST or UST. At present time C#, Java, PHP, PL/SQL, T-SQL, and JavaScript are supported. Patterns can be described within the code or using a DSL.

0

shipshape

  • Type: cli
261

Static program analysis platform that allows custom analyzers to plug in through a common interface.

-1

HuntBugs

  • Type: cli
302

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

❤️ Sponsor this project

We are currently looking for partners who want to sponsor hosting and development of the project.

Check out our Github Sponsors page here

Missing an entry? Please let us know.