Sunday, October 25, 2026 4,350 lists 78,100 records on file
List your app or device

  1. Home
  2. Plagiarism Detection Software
  3. JPlag

JPlag

What it is

JPlag compares programs pair by pair to find source-code similarities that may indicate plagiarism or collusion. It examines programming-language syntax and program structure, which can reveal matches despite some attempts at obfuscation. Analysis runs on the user’s machine, and the project says it sends no data externally; it compares submissions with one another, not against internet sources. Listed language support includes Java, C, C++, C#, Python, JavaScript, TypeScript, Go, Kotlin, R, Rust, Swift, Scala, LLVM IR, Scheme, EMF, SCXML, text and multi-language submissions, with varying levels of maturity. Users can work through a command-line interface or Java API, and the CLI can launch the report viewer. JPlag is also published on Maven Central for use as a Java project dependency. It is free, but running or building it requires Java SE 25. By default, the report’s top list and code comparison cover at most 2,500 pairs, adjustable with the -n option. Lowering the minimum matching-token length increases sensitivity but can also produce more false positives. The project describes uses in programming education and identifying duplicated or slightly changed software components.

For and against

For

  • Analysis runs locally without sending data externally
  • Offers a command-line interface and Java API
  • Supports a wide range of listed languages and formats
  • Can be included in Java projects through Maven Central

Against

  • Does not compare submissions against the internet
  • Requires Java SE 25 to run or build
  • Default report comparison limit is 2,500 pairs
  • Greater sensitivity can increase false positives

The verdict

JPlag provides local pairwise code comparison through command-line and Java interfaces, with broad listed language support. Its Java requirement, pair limit and sensitivity tradeoff matter when choosing settings.

Who it suits

It suits educators and developers comparing sets of code submissions locally. Users should consider the Java SE 25 requirement, language support maturity and the risk of false positives at higher sensitivity.

Plans and prices

JPlag

Free

open-source software · runs locally · Java SE 25 required

Every plan, in full

On the record

Build process
Building from source uses Maven, and including the report viewer in the assembled JAR additionally requires Node.js.github.com · read 15 Oct 2026
CLI
JPlag provides a command-line interface with language selection, run/view modes, result-file output and configurable comparison limits.github.com · read 15 Oct 2026
Cluster analysis
A cluster view shows relationships and group dynamics among multiple programs.helmholtz.software · read 15 Oct 2026
Documentation and support
Documentation is provided through the GitHub wiki, repository README, issue tracker, discussions and a listed project email address.helmholtz.software · read 15 Oct 2026
Early research record
The original JPlag publication describes pairwise similarity scoring with similarity regions and a Greedy String Tiling-based comparison algorithm.jucs.org · read 15 Oct 2026
Education use
The project is primarily intended for detecting copied student programming assignments, although it also describes software-theft use cases.github.com · read 15 Oct 2026
Extensibility
The repository contains separate language, language-API, parser-utility and report-viewer modules for extending or integrating the system.github.com · read 15 Oct 2026
Historical comparison
New submissions can be compared with one another and with an old-submission set, while old submissions are not compared among themselves.github.com · read 15 Oct 2026
History
JPlag originated in 1996 at Karlsruhe Institute of Technology and was revived and modernized from late 2020.github.com · read 15 Oct 2026
How it compares
It analyzes programming-language syntax and program structure, which helps it detect similarities despite some obfuscation attempts.github.com · read 29 Sep 2026
Independent comparison
Codequiry describes JPlag as self-hosted open-source KIT software requiring Java and contrasts it with hosted alternatives.codequiry.com · read 15 Oct 2026
Independent directory facts
Helmholtz's Research Software Directory describes JPlag as locally executable open source and lists GPL-3.0-only licensing.helmholtz.software · read 15 Oct 2026
Integration
JPlag is published on Maven Central for inclusion as a dependency in Java projects.github.com · read 29 Sep 2026
Interfaces
JPlag can be used through its command-line interface or Java API, and the CLI can launch the report viewer.github.com · read 29 Sep 2026
Internet matching limit
JPlag compares submissions with one another rather than searching the public internet.github.com · read 15 Oct 2026
Java API
The project exposes a Java API that can run analyses and create saved reports from Java applications.github.com · read 15 Oct 2026
Language maturity
Language modules are marked with different maturity levels, including mature, beta, legacy and alpha.github.com · read 15 Oct 2026
Languages
The README lists support for Java, C, C++, C#, Python, JavaScript, TypeScript, Go, Kotlin, R, Rust, Swift, Scala, LLVM IR, Scheme, EMF, SCXML, text, and multi-language submissions, with varying maturity levels.github.com · read 29 Sep 2026

Alternatives to JPlag

Every alternative, ranked