前言

说明一下本文章针对最新版本Jplag3.0使用JplagAPI


一、Jplag是什么?

Jplag是用来对代码进行查重的一种工具,本次创作是由于博主在本科论文中有涉及到代码查重,所以想将自己的见解分享一下。

二、使用步骤

1.下载包

github的访问地址在这里

下载地址可以从github下载,也可以从这里下载

2.java环境配置

  • Java版本必须使用Java17,Java安装我就不过多说了,网上教程很多
  • 如果使用的是eclipse,那么eclipse版本使用的是2022-03,这样才能使用Java17

3.如何使用

  • 将jar包导入到项目里
  • 可以去github查看API
    • 但是我使用时,有些小问题,这些都可以解决
  • 使用我调试之后的代码


import java.io.File;
import java.util.List; import de.jplag.JPlag;
import de.jplag.JPlagComparison;
import de.jplag.JPlagResult;
import de.jplag.exceptions.ExitException;
import de.jplag.exceptions.ReportGenerationException;
import de.jplag.options.JPlagOptions;
import de.jplag.options.LanguageOption;
import de.jplag.reporting.Report; public class TestCode {
public static void main(String[] args) {
// TODO Auto-generated method stub
//D:\\Testcode\\16517173285362这个文件夹下面放你需要查重的文件
JPlagOptions options = new JPlagOptions("D:\\Testcode\\16517173285362", LanguageOption.C_CPP);
//因为我查的是CPP文件所以用的CPP,这里可以改成你需要的语言
options.setBaseCodeSubmissionName("template");
//这个template文件夹放在上面那个文件夹里,外面的那些文件需要和里面的文件进行查重,当然外面的文件也会两两比较查重
try {
JPlag jplag = new JPlag(options);
JPlagResult result = jplag.run(); List<JPlagComparison> comparisons = result.getComparisons();
File outputDir = new File("D:\\Testcode");//这个是将结果保存的文件夹
Report report = new Report(outputDir, options); report.writeResult(result);
} } catch (ReportGenerationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (ExitException e) {
e.printStackTrace();
}
} }
  • 查看执行结果

    • 可以去我代码中说明的位置去查看,里面有许多网页,点开index页面,最下面有查重率,点开可以具体查看。
    • 具体如何查看外面文件之间的查重率我暂时也还不清楚,欢迎大家使用后给我留言!!!

三、总结

经过我使用后,我发现对于简单的只有输出或简单定义个变量来进行查重,一般是无法进行查重,会提示关键字太少,如果加个循环或者其他的话,则可以查重,但还是有些无法成功,具体缘由我也无从得知,大家使用后如果有什么新发现欢迎给我评论留言!!!

查重工具Jplag的使用的更多相关文章

  1. 代码查重工具sim

    在瞎搜东西的时候,发现了一个大牛的博客 看起来很厉害的样子...做了一个LaTeX的语法检查并给出适当的提示,上wiki上一查发现他竟然是CVS第一个版本的发明者和开发者...Dick grune这是 ...

  2. 文件查重工具 ultraCompare 和 UltraFinder 用法

    UltraCompare 是一款文件内容比较工具,它可以对于文本.文件夹.二进制进行比较.可进行文本模式,文件夹模式以及二进制模式的比较,可对比较的文件.文件夹等进行合并,同步等操作.是进行比较操作的 ...

  3. 【NLP】Python实例:申报项目查重系统设计与实现

    Python实例:申报项目查重系统设计与实现 作者:白宁超 2017年5月18日17:51:37 摘要:关于查重系统很多人并不陌生,无论本科还是硕博毕业都不可避免涉及论文查重问题,这也对学术不正之风起 ...

  4. CRM 数据查重

    2.8 小工具 · 纷享销客产品手册https://www.fxiaoke.com/mob/guide/crmdoc/src/2-8%E5%B0%8F%E5%B7%A5%E5%85%B7.html C ...

  5. 【NLP】Python实例:基于文本相似度对申报项目进行查重设计

    Python实例:申报项目查重系统设计与实现 作者:白宁超 2017年5月18日17:51:37 摘要:关于查重系统很多人并不陌生,无论本科还是硕博毕业都不可避免涉及论文查重问题,这也对学术不正之风起 ...

  6. python 手把手教你基于搜索引擎实现文章查重

    前言 文章抄袭在互联网中普遍存在,很多博主都收受其烦.近几年随着互联网的发展,抄袭等不道德行为在互联网上愈演愈烈,甚至复制.黏贴后发布标原创屡见不鲜,部分抄袭后的文章甚至标记了一些联系方式从而使读者获 ...

  7. 论文 查重 知网 万方 paperpass

    相信各个即将毕业的学生或在岗需要评职称.发论文的职场人士,论文检测都是必不可少的一道程序.面对市场上五花八门的检测软件,到底该如何选择?选择查重后到底该如何修改?现在就做一个知识的普及.其中对于中国的 ...

  8. 如何对excel进行列查重

    学习了excel函数:countif.表达式:COUNTIF(数据区域,条件),作用:对数据区域内符合条件单元格计数 具体应用 在“姓名”(列A)后插入一列(列B),在B2单元格输入公式“=IF(CO ...

  9. POJ 3274 Gold Balanced Lineup 哈希,查重 难度:3

    Farmer John's N cows (1 ≤ N ≤ 100,000) share many similarities. In fact, FJ has been able to narrow ...

随机推荐

  1. Linux 搭建Apollo

    简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理场景 ...

  2. html 不常用标签介绍

    文本元素 <wbr> 如果单词太长,或者您担心浏览器会在错误的位置换行,那么您可以使用 <wbr> 元素来添加 Word Break Opportunity(单词换行时机).英 ...

  3. 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)

    回顾 上一节我们搭建了游戏的骨架,添加了四个游戏场景,分别是加载.开始.游戏.结束.那么这一节我们来介绍加载这个场景,顺带丰富一下各个场景的基本内容. Phaser.Loader Phaser框架自带 ...

  4. canvas 1px 出现模糊解决方法及原理

    关于canvas绘制1像素出现模糊的原因及解决方法 canvas是html5中非常强大的功能,但是在绘制的时候如果出现1像素,例如画一条1像素的线可能出现模糊情况. 一.解决方法 网上比较常见的解决方 ...

  5. React系列——websocket群聊系统在react的实现

    前奏 这篇文章仅对不熟悉在react中使用socket.io的人.以及websocket入门者有帮助. 下面这个动态图展示的聊天系统是用react+express+websocket搭建的,很模糊吧, ...

  6. CSS的inline、block与inline-block

    基本知识点 行内元素一般是内容的容器,而块级元素一般是其他容器的容器,行内元素适合显示具体内容,而块级元素适合做布局. 块级元素(block):独占一行,对宽高的属性值生效:如果不给宽度,块级元素就默 ...

  7. ajax自己封装

    function paramsSeralize(obj){ if(!obj || typeof !== 'object') return obj; let res = ''; for (const k ...

  8. Java基础之浅谈继承、多态

    一.继承的理解 继承:简单通俗的来讲,继承就是一个类继承另一个类,通常用extends表示继承. 继承的类叫子类,被继承的类叫父类. 子类可以使用父类的变量和方法,同时也可以重写父类的方法. 在Jav ...

  9. 使用pyttsx3实现简单tts服务

    操作系统:Windows 10_x64 python版本:Python 3.9.2_x64 pyttsx3版本: 2.90   pyttsx3是一个tts引擎包装器,可对接SAPI5.NSSS(NSS ...

  10. 机器学习---kmeans聚类的python实现

    """ Name: study_kmeans.py Author: KX-Lau Time: 2020/11/6 16:59 Desc: 实现kmeans聚类 " ...