JPlag
jplag.ipd.kit.edu
What it is
JPlag is free, open-source software for finding pairwise similarities among submitted programs. It examines program syntax and structure to help detect source-code plagiarism and collusion, especially in student programming exercises, and can also identify duplicated or stolen software parts. It does not compare submissions with the internet. 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 projects. JPlag runs locally, with the project stating that source code and plagiarism results are not sent externally. You can use its command-line interface, Java API, or Maven Central dependency. A bundled report viewer opens generated or existing reports. Base-code directories can exclude shared starter code, while matching-token sensitivity is adjustable. The default report lists up to 2500 comparison pairs, configurable with -n. Running or building it requires Java SE 25.
Spec sheet
- Purpose
- JPlag finds pairwise similarities among programs to detect source-code plagiarism and collusion.Read 11 Oct 2026 · github.com
- Support
- The project directs users to report bugs and issues and provides [email protected] for other inquiries.Read 11 Oct 2026 · github.com
- Headquarters
- Karlsruhe, GermanyRead 28 Sep 2026 · jplag.ipd.kit.edu
- Founded
- 1996Read 28 Sep 2026 · jplag.ipd.kit.edu
- Data handling
- The project states that analysis runs locally and that source code and plagiarism results are not uploaded or sent externally.Read 11 Oct 2026 · github.com
- Exclude starter code
- A base-code directory can be specified so matches also present in the shared template are ignored.Read 11 Oct 2026 · github.com
- 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.Read 11 Oct 2026 · github.com
- Integration
- JPlag is available as a dependency from Maven Central for inclusion in Java projects.Read 11 Oct 2026 · github.com
- Report limit
- The default report shows at most 2500 comparison pairs in its top list and code comparisons, configurable with the -n option.Read 11 Oct 2026 · github.com
- Report viewer
- Since version 6.0.0, the report viewer is bundled with JPlag and can open generated or existing reports.Read 11 Oct 2026 · github.com
- Requirements
- The project README says Java SE 25 is needed to run or build JPlag.Read 11 Oct 2026 · github.com
- Run options
- JPlag can be run through its command-line interface or called programmatically through its Java API.Read 11 Oct 2026 · github.com
- Sensitivity setting
- The minimum matching token length can be adjusted; lower values increase sensitivity but may cause more false positives.Read 11 Oct 2026 · github.com
- 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.Read 11 Oct 2026 · github.com
- 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.Read 11 Oct 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Free open-source software
- Local analysis keeps code and results external-free
- Broad list of supported programming languages
- Command-line, Java API, and Maven integration
- Starter-code exclusion and sensitivity controls
Limits
- No internet or academic-source matching
- Requires Java SE 25
- Default report list caps at 2500 pairs
Who it suits
JPlag suits educators checking programming exercises and developers looking for duplicated or stolen code parts. It is also appropriate for Java projects needing command-line or API integration with local analysis.
Verdict
JPlag focuses on structural, pairwise comparison of submitted programs rather than web searching. Its local operation, language coverage, APIs, and configurable reports suit controlled plagiarism checks where Java SE 25 is available.
Where Specifiction places it
- Plagiarism Checkers#10 of 318.0