基于graalvm和java swing制作一个文件差异对比的原生应用,附源码

news2024/12/23 12:57:04

文章目录

        • 1、DFDiff介绍
        • 2、软件架构
        • 3、安装教程
          • 3.1、编译为jar包运行
          • 3.2、编译为原生应用运行
        • 4、运行效果图
        • 5、项目源码地址

1、DFDiff介绍

当前已实现的功能比较两个文件夹内的文件差异,已支持文件差异对比。

2、软件架构

软件架构说明
开发环境是在OpenJDK17,UI使用的是Swing + SwingX扩展控件,使用Graalvm编译为原生应用。

  • 文件列表使用的Swingx组件的JXTreeTable。
  • 文件差异对比使用的Swingx组件的JXTable。

3、安装教程

3.1、编译为jar包运行

需要使用maven。
编译构建为jar包

mvn package

运行

java -jar DFDiff-1.0.0-jar-with-dependencies.jar
3.2、编译为原生应用运行

,除了Maven,还需要Graalvm
编译构建为jar包

mvn package

使用native-image-agent(Graalvm内工具)工具来收集这些运行库信息

java -agentlib:native-image-agent=config-output-dir=META-INF/native-image -jar DFDiff-1.0.0-jar-with-dependencies.jar

编译为原生应用,Window平台下为DFDiff.exe

native-image --verbose --static --no-fallback -H:ConfigurationFileDirectories=META-INF/native-image --link-at-build-time --allow-incomplete-classpath -jar DFDiff-1.0.0-jar-with-dependencies.jar DFDiff

GraalVM编译后得到的运行文件
在这里插入图片描述

Window平台下运行

双击DFDiff.exe运行

GraalVM编译的Window版本下载:dfdiff-windows-1.0-beta

4、运行效果图

  1. 目录差异对比
    在这里插入图片描述

  2. 文件差异对比
    在这里插入图片描述

5、项目源码地址

项目源码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/628496.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安装 Kafka

文章目录 1.选择操作系统2.配置 Java 环境3.安装 ZooKeeper4.安装 broker(1)安装 broker(2)验证是否安装正确 5.配置 broker(1)常规配置(2)主题的默认配置 6.配置 Kafka 集群&#x…

CAC2.0全新升级发布,为企业邮箱筑起安全壁垒!

5月31日,Coremail举办了【聚焦盗号,企业邮件安全的威胁分析与应对】直播交流会。直播会上Coremail邮件安全团队就邮箱盗号问题进行了深度分享。 面对如此肆虐的盗号现象和即将到来的攻击暴破高峰期,各行业应该如何应对防护邮箱安全呢&#xf…

什么是防火墙?它有什么作用?

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 目录 一、什么是防火墙 二、防火墙的分类 1、软件防火墙 2、硬件防火墙 三、防火墙的作用 1、防止病毒 2、防止访问不安全内容 3、阻…

如何使用AI帮你制作PPT

一:前言 ChatGPT:智能AI助你畅聊天地 在现代人日益忙碌的生活中,难免需要一些轻松愉快的聊天来放松身心。而现在,有了 ChatGPT,轻松愉快的聊天变得更加智能、有趣且不受时间、地点限制! 什么是 ChatGPT&…

嵌入式Linux系统中SPI 子系统基本实现

1、SPI 驱动源文件目录 Linux common spi driver kernel-4.14/drivers/spi/spi.c Linux 提供的通用接口封装层驱动 kernel-4.14/drivers/spi/spidev.c linux 提供的 SPI 通用设备驱动程序 kernel-4.14/include/linux/spi/spi.h linux 提供的包含 SPI 的主要数据结构和函数…

sourcetree的使用

目录 前言 一、Sourcetree简介 二、创建分支与合并分支 三、合并冲突问题 总结 前言 今天提交项目代码时,接触到非常好用方便的可视化Git管理提交软件Sourcetree,今天记录一下使用过程 一、Sourcetree简介 通过Git可以进行对项目的版本管理,但是如果直接使用Git的软件会比…

MinIO快速入门——在Linux系统上安装和启动

1、简介 MinIO 是一款基于Go语言发开的高性能、分布式的对象存储系统。客户端支持Java,Net,Python,Javacript, Golang语言。MinIO系统,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。 2、环境搭建&#…

【MySQL】一文带你了解数据库约束

文章目录 1. 约束类型2.PRIMARY KEY:主键约束3.FOREIGN KEY:外键约束4.NOT NULL:非空约束5.UNIQUE:唯一约束5.DEFAULT:默认值约束6.总结 1. 约束类…

用数据说话,R语言有哪七种可视化应用?

今天,随着数据量的不断增加,数据可视化成为将数字变成可用的信息的一个重要方式。R语言提供了一系列的已有函数和可调用的库,通过建立可视化的方式进行数据的呈现。在使用技术的方式实现可视化之前,我们可以先和AI科技评论一起看看…

SpringBoot 源码分析准备应用上下文(2)-prepareContext

一、入口 /*** Run the Spring application, creating and refreshing a new* {link ApplicationContext}.* param args the application arguments (usually passed from a Java main method)* return a running {link ApplicationContext}*/public ConfigurableApplicationC…

生成测试报告,在Unittest框架中就是简单

测试套件(Test Suite)是测试用例、测试套件或两者的集合,用于组装一组要运行的测试(多个测试用例集合在一起)。 (1)创建一个测试套件: import unittest suite unittest.TestSuite…

车载测试:详解ADAS传感器(相机)标定数据采集方法

1.基本原理 相机外参标定,通过拍摄多角度棋盘格标定相机外参。 2.外参标定板设计 标定板分为垂直标定板和水平标定板,由于地面的水平标定板不容易被检测到,本文采用垂直标定板进行相机标定。 在标定过程中标定板需要和车身坐标成正交状态…

中国人民大学与加拿大女王大学金融硕士——所有的为时已晚都是恰逢其时

你是否有过同样的感觉,工作之余想学点什么又觉得有点晚了,心里反复纠结,总是没个结果。记得在网上看到过一句话,你觉得为时已晚的时候,恰恰是最早的时候。与其在心里反复琢磨,不如去付诸行动。中国人民大学…

超详细,自动化测试-Allure测试报告动态生成用例/标题(实战撸码)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 pytest 结合 allu…

Android-源码分析-MTK平台BUG解决:客户电池NTC功能(移植高低温报警,关机报警功能)---第一天分析与解决

MTK平台BUG解决:客户电池NTC功能 一、概述二、步骤1:实现目的?2:准备工作:机制原理的学习(1)MTK充电温度保护机制(2)MTKthermal高温充电机制 3:定位查找与源码…

提高自动化测试效率 , WEB自动化框架的基础封装模块!

目录 前言 一、环境搭建 1. Python环境 2. Selenium安装 3. Chrome浏览器 二、基础封装模块介绍 1. 代码框架介绍 2. 使用示例 三、总结 前言 在软件测试中,WEB自动化测试已成为不可或缺的一部分。WEB自动化测试涉及到大量的代码编写,为了提高…

SUSTechPOINTS三维点云标注工具使用

官方地址:SUSTechPOINTS 官方中文教程 相关文章: OpenPCDet安装、使用方式及自定义数据集训练 安装 git clone https://github.com/naurril/SUSTechPOINTS cd SUSTechPOINTS pip install -r requirement.txt wget https://github.com/naurril/SUSTec…

【全栈开发】基于Spring BootVueAndroid扫码授权登录

文章目录 一、引言二、设计1、移动端(Android)(1)库(2)依赖(3)使用 2、前端(Vue)(1)库(2)使用 3、后端&#x…

Home Assistant-开源智能家居系统

Home Assistant(以下简称HA) 它是个开源的智能家居平台,一个系统平台软件,像TB 1.它把家中的智能家居设备整合到HA中,它能够接入的设备非常的多比如小米、博联、易微联、飞利浦、特斯拉…,也可以接入软件&…

Python远程连接Ubuntu20.4下的Mariadb数据库进行操作

文章目录 前言一、ubuntu20.4安装mariadb10.51、更换数据源2、安装mariadb3、设置密码4、设置管理用户5、设置远程登录6、修改端口 二、mariadb10.5建库建表创建数据库2.建表 三、Python代码及环境准备1、Python2、环境 四、总结五、参考资料 前言 环境: 1、Ubuntu2…