JPlag compares submitted programs pair by pair to find similarities that may point to source-code plagiarism or collusion. It analyzes programming-language syntax and program structure, which can help identify similarities despite some obfuscation. The project says analysis runs on the user's machine and sends no data externally, but it compares submissions only with one another, not with 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; maturity varies across these options. Users can run it through a command-line interface or Java API, and the CLI can open the report viewer. It is also available through Maven Central as a dependency for Java projects. JPlag is free and requires Java SE 25 to run or build. By default, the report's top list and code comparison cover at most 2,500 pairs, a limit adjustable with the -n option. Lowering the minimum matching-token length increases sensitivity but can also increase false positives.
Who it is for
JPlag suits programming educators comparing submissions, and developers looking for duplicated or modified software sections. Users should check the varying maturity of language support and the Java SE 25 requirement.
What is good
- Free and open-source.
- Analysis runs locally and sends no data externally.
- Offers a command-line interface and Java API.
- Supports a broad range of listed languages and formats.
What to know first
- Does not compare submissions against internet sources.
- Requires Java SE 25 to run or build.
- Language support has varying maturity.
- Default report limit is 2,500 pairs.
Verdict
JPlag provides local, pairwise code comparison through a CLI or Java API, with support for many languages and formats. Its scope is limited to submitted material, and tuning sensitivity can also increase false positives.
JPlag plans and pricing
All plansCompared on plagiarism detection software
- Free plan
- Yes
- AI detection
- No
- LMS integrations
- No
- API access
- Yes
- Browser extension
- No

