# DFDiff **Repository Path**: penngo/dfdiff ## Basic Information - **Project Name**: DFDiff - **Description**: DFDiff是一款使用Java Swing开发的,并使用Graalvm编译成原生应用的文本处理工具,提供文本编辑和文本对比功能。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 22 - **Forks**: 3 - **Created**: 2023-05-08 - **Last Updated**: 2025-07-15 ## Categories & Tags **Categories**: filemanager **Tags**: None ## README # DFDiff ### 1、介绍 DFDiff是一款使用Java Swing开发的,并使用Graalvm编译成原生应用的文本处理工具,提供文本编辑和文本对比功能。 ### 2、软件架构 软件架构说明 开发环境是在OpenJDK17,UI使用的是Swing + SwingX扩展控件,使用Graalvm编译为原生应用。 - 文件列表使用的Swingx组件的JXTreeTable。 - 文件差异对比使用的Swingx组件的JXTable。 ### 3、安装教程 #### 3.1、编译为jar包运行 ##### 3.1.1、编译为jar包直接运行 需要使用maven。 - 编译构建为jar包 ``` mvn package ``` - 运行 ``` java -jar DFDiff-1.0.0-jar-with-dependencies.jar ``` ##### 3.1.2、使用jpackage打包运行 在编译为jar后,执行以下命令生成带jre的运行包 ```bash jpackage --type app-image --name DFDiff --input target --app-version 1.2.0 --copyright gitee.com/penngo --vendor gitee.com/penngo --icon logo.ico --add-modules java.desktop,java.logging,jdk.management,java.sql --main-jar DFDiff-1.2.0-jar-with-dependencies.jar --dest dist ``` **windows平台打包生成后的文件** ![jpackage](img/03_jpackage.jpg) **linux平台打包生成后的文件** ![jpackage](img/04_jpackage.jpg) **windown运行** ```bash 双击DFDiff.exe运行 ``` **linux运行** ``` ./bin/DFDiff ``` #### 3.2、GraalVM编译为原生应用运行 需要使用Maven和Graalvm ##### 3.2.1、编译构建为jar包 ```bash mvn package ``` ##### 3.2.2、使用native-image-agent(Graalvm内工具)工具来收集这些运行库信息 ```bash java -agentlib:native-image-agent=config-output-dir=META-INF/native-image -jar DFDiff-1.0.0-jar-with-dependencies.jar # 或 mvn -Pnative -Dagent exec:exec@java-agent ``` ##### 3.2.3、编译为原生应用,Window平台下为DFDiff.exe,Linux平台上为DFDiff ```bash native-image --verbose --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 # 或 mvn -DskipTests=true -Pnative -Dagent package ``` ##### 3.2.4、把console程序转为GUI程序 Grallvm编译后的原生应用默认为控制台运行,window下运行时带黑色窗体,可以通过以下命令转为GUI程序。 editbin使用介绍:[https://learn.microsoft.com/zh-cn/cpp/build/reference/editbin-options?view=msvc-160](https://learn.microsoft.com/zh-cn/cpp/build/reference/editbin-options?view=msvc-160) ```bash editbin /subsystem:windows DFDiff.exe ``` ##### 3.2.5、添加应用图标 window下修改应用图标可以使用第三方工具WinRun4J:[https://github.com/poidasmith/winrun4j](https://github.com/poidasmith/winrun4j) ```bash RCEDIT.exe /I DFDiff.exe logo.ico ``` ##### 3.2.6、编译后文件 ###### 3.2.6.1、Windows平台编译后得到的运行文件 ![目录对比](img/00.jpg) ###### 3.2.6.2、Linux平台编译后得到的运行文件** ![目录对比](img/20.jpg) - Window平台下运行 ``` 双击DFDiff.exe运行 ``` GraalVM编译的Window版本下载:[dfdiff-windows-1.2.0](https://gitee.com/penngo/dfdiff/releases) ### 4、已实现菜单功能 ``` ├──文件 | ├─新建文件 | ├─打开文件 | ├─打开文件夹 | ├─最近打开的文件/文件夹 | ├─保存文件 | ├─另存文件 | └──退出 ├──编辑 | ├─撤消 | ├─恢复 | ├─复制 | ├─粘贴 | ├─剪切 | ├─查找... | ├─字体 | └──换行 ├──工具 | ├─文件夹对比 | ├─文件对比 | ├─json格式化 | ├─xml格式化 | ├─合并pdf | └─图片转pdf └──帮助 └──关于 ``` ### 5、运行截图 #### 5.1、Windows下运行截图 ##### 5.1.1、文本编辑功能 ![文本编辑](img/11_file.png) ##### 5.1.2、文件夹差异对比 ![目录对比](img/12_folder.png) ##### 5.1.3、文件差异对比 ![文件对比](img/13_folder_file.png) #### 5.2、Linux平台下运行截图 运行程序 ``` ./DFDiff ``` ##### 5.2.1、Ubuntu 20运行截图 ![文本编辑](img/21_ubuntu.jpg) ##### 5.2.2、Centos 7运行截图 ![目录对比](img/22_centos.jpg) ###### 5.2.3、Uos 20运行截图 ![目录对比](img/23_uos.jpg) ###### 5.2.4、银河麒麟V10运行截图 ![目录对比](img/24_kylin_v10.jpg)