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.
The use of JPlag is free, but you must obtain an account. This
requirement is not only necessary to avoid unauthorized use of JPlag
by students, but also to provide the easy and installation-free access
to the software.
For obtaining a JPlag account please fill out the
registration form. Please note that we do
not give accounts to users of anonymous email addresses like Hotmail, Yahoo,
If you have any questions, you can contact the authors by e-mail at JPlag@ira.uka.de.
With this account you can then 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.
We Need 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 send them to us.
Including other Languages in JPlag
If you want a new language to be supported by JPlag, please contact us.