Logo der Fakultät für Informatik, Karlsruhe

Institute for Program Structures and Data Organization

Am Fasanengarten 5
76131 Karlsruhe

What is JPlag

JPlag is a system that finds similarities among multiple sets of source code files. This way it can detect software plagiarism. JPlag does not merely compare bytes of text, but is aware of programming language syntax and program structure and hence is robust against many kinds of attempts to disguise similarities between plagiarized files. JPlag currently supports Java, C#, C, C++, Scheme and natural language text.

JPlag is typically used to detect and thus discourage the unallowed copying of student exercise programs in programming education. But in principle it can also be used to detect stolen software parts among large amounts of source text or modules that have been duplicated (and only slightly modified). JPlag has already played a part in several intellectual property cases where it has been successfully used by expert witnesses.

JPlag has a powerful graphical interface for presenting its results. See our example.

Just to make it clear: JPlag does not compare to the internet! It is designed to find similarities among the student solutions, which is usually sufficient for computer programs.

Use JPlag

New Users

New users have to download JPlag from Github. We no longer accept registrations for our web service.

Legacy Users with an Account

If you have an account, you can access our Java Web Start client. Also, there is a moodle plugin.

JPlag needs Java 7. If Webstart fails with a ClassNotFound exception, check your JavaWS version. (Linux users, take a look at update-alternatives --config javaws).
More help in the client documentation.

JPlag Needs Your Assistance!

Comparing Java 1.7 Sources

Since April 2013 JPlag can analyze Java 1.7 sources. Even though the front end for Java 1.7 is not yet stable, we decided to make it available. If you have proper Java 1.7 sources that fail to be parsed by JPlag, please file a bug report on Github.