Freedom251 › Plagiarism Checkers
JPlag
What JPlag is
JPlag is free, open-source software for finding similarities between pairs of programs. It analyzes program syntax and structure to help identify possible copying or collusion in submitted work. The project describes student programming exercises as a common use, and says it can also help find duplicated or stolen software parts. JPlag does not compare submissions with the internet.
It supports 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 it from the command line, call it through its Java API, or add it to a Java project as a Maven Central dependency. Analysis runs locally; the project says source code and results are not uploaded or sent elsewhere.
A base-code directory lets you disregard matches that come from a shared template. You can also change the minimum matching-token length: lowering it makes detection more sensitive but can produce more false positives. JPlag requires Java SE 25 to run or build. Its bundled report viewer opens generated or existing reports, and reports can be exported as JPlag report files or CSV.
Who it suits
JPlag suits educators checking student programming exercises for copying or collusion, and developers looking for duplicated or stolen code. It may fit teams that need local analysis, Java API access, or support for one of its listed input languages.
What it does well
- Free, open-source software.
- Analyzes program syntax and structure.
- Runs locally; code and results stay off external services.
- Supports many programming languages and multi-language input.
- Can ignore matches in shared starter code.
- Exports JPlag reports and CSV.
What to know first
- Requires Java SE 25 to run or build.
- Does not compare submissions with the internet.
- The default report list is limited to 2500 comparison pairs.
Limits
The default report shows at most 2500 comparison pairs in its top list and code comparisons; this limit can be changed with the -n option. Lowering the minimum matching-token length increases sensitivity but may cause more false positives.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| JPlag | Open-source software; runs locally; requires Java SE 25 | Free |
As jplag.ipd.kit.edu lists them, read 11 Oct 2026. The maker's own page has the final word.
Getting started
- Visit the JPlag website.
- Install or use an environment with Java SE 25.
- Run JPlag through its command-line interface, call its Java API, or add it to a Java project from Maven Central.
- Optionally set a base-code directory and adjust the minimum matching-token length.
- Open the generated report with the bundled viewer or export it as a JPlag report or CSV.
Verdict
Choose JPlag if you need local pairwise analysis of program submissions, especially for student exercises or duplicated code. Look elsewhere if you need web matching, or if your environment cannot run Java SE 25.
Questions
How much does JPlag cost?
JPlag is free and open source. Its listed plan is free.
Does JPlag compare code with the internet?
No. It finds pairwise similarities among programs and does not compare submissions with the internet.
Which languages does JPlag support?
The listed 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.
How can I use JPlag in a project?
You can run it from the command line, call its Java API, or include it in a Java project as a Maven Central dependency.
Does JPlag send source code externally?
The project says analysis runs locally and source code and plagiarism results are not uploaded or sent externally.
What does JPlag require to run?
The project README says Java SE 25 is needed to run or build JPlag.
Facts from JPlag's own pages
- Data handling
- The project states that analysis runs locally and that source code and plagiarism results are not uploaded or sent externally. · github.com, 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, 11 Oct 2026
- Founded
- 1996 · jplag.ipd.kit.edu, 28 Sept 2026
- Headquarters
- Karlsruhe, Germany · jplag.ipd.kit.edu, 28 Sept 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, 11 Oct 2026
- Integration
- JPlag is available as a dependency from Maven Central for inclusion in Java projects. · github.com, 11 Oct 2026
- Purpose
- JPlag finds pairwise similarities among programs to detect source-code plagiarism and collusion. · github.com, 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, 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, 11 Oct 2026
- Requirements
- The project README says Java SE 25 is needed to run or build JPlag. · github.com, 11 Oct 2026
- Run options
- JPlag can be run through its command-line interface or called programmatically through its Java API. · github.com, 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, 11 Oct 2026
- Support
- The project directs users to report bugs and issues and provides [email protected] for other inquiries. · github.com, 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, 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, 11 Oct 2026
Where JPlag stands on Freedom251
- Plagiarism Checkers#5 of 31