- Home
- Plagiarism Checkers
- JPlag
JPlag
Karlsruhe, Germany
What it is
JPlag is free, open-source software for finding pairwise similarities among programs to help detect source-code plagiarism and collusion. It examines program syntax and structure in submitted code rather than checking the internet. The project describes student programming exercises as a typical use and also notes detecting duplicated or stolen software parts. Supported inputs include Java, C, C++, C#, Python, JavaScript, TypeScript, Go, Kotlin, R, Rust, Swift, Scala, LLVM IR, Scheme, EMF, SCXML, text, and multi-language input. You can run JPlag from its command-line interface or call it through a Java API, including as a Maven Central dependency in Java projects. Analysis runs locally, with source code and results kept from external transmission according to the project. A bundled report viewer opens generated or existing reports. Starter code can be excluded, matching sensitivity can be adjusted, and reports can be exported as JPlag or CSV files. Java SE 25 is required.
For and against
For
- Free and open-source
- Supports many programming languages
- Runs analysis locally
- Command-line and Java API access
- Starter-code exclusion available
Against
- Requires Java SE 25
- Does not compare code with the internet
- Lower sensitivity can create false positives
- Top report list defaults to 2500 pairs
The verdict
JPlag provides local, syntax-focused similarity analysis across a broad language list. Its Java requirement and lack of web-source matching matter when choosing a plagiarism workflow.
Who it suits
JPlag suits educators checking programming assignments and teams looking for duplicated software components. It is aimed at Linux, self-hosted, API, and local workflows.
Plans and prices
JPlag
Open-source software; runs locally; requires Java SE 25
Read 11 Oct 2026 · github.com
On the record
- Data handling
- The project states that analysis runs locally and that source code and plagiarism results are not uploaded or sent externally.github.com · read 11 Oct 2026
- Exclude starter code
- A base-code directory can be specified so matches also present in the shared template are ignored.github.com · read 11 Oct 2026
- How it compares
- JPlag analyzes program syntax and structure and is designed to find similarities among submitted programs; it does not compare them with the internet.github.com · read 11 Oct 2026
- Integration
- JPlag is available as a dependency from Maven Central for inclusion in Java projects.github.com · read 11 Oct 2026
- Purpose
- JPlag finds pairwise similarities among programs to detect source-code plagiarism and collusion.github.com · read 11 Oct 2026
- Report limit
- The default report shows at most 2500 comparison pairs in its top list and code comparisons, configurable with the -n option.github.com · read 11 Oct 2026
- Report viewer
- Since version 6.0.0, the report viewer is bundled with JPlag and can open generated or existing reports.github.com · read 11 Oct 2026
- Requirements
- The project README says Java SE 25 is needed to run or build JPlag.github.com · read 11 Oct 2026
- Run options
- JPlag can be run through its command-line interface or called programmatically through its Java API.github.com · read 11 Oct 2026
- Sensitivity setting
- The minimum matching token length can be adjusted; lower values increase sensitivity but may cause more false positives.github.com · read 11 Oct 2026
- Support
- The project directs users to report bugs and issues and provides [email protected] for other inquiries.github.com · read 11 Oct 2026
- Supported languages
- The project 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 input.github.com · read 11 Oct 2026
- Typical users
- The project says it is typically used to detect copying of student programming exercises and can also identify duplicated or stolen software parts.github.com · read 11 Oct 2026