天天看點

基于graalvm和java swing制作一個檔案差異對比的原生應用,附源碼

作者:今天下了點雨

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編譯後得到的運作檔案

基于graalvm和java swing制作一個檔案差異對比的原生應用,附源碼

Window平台下運作

輕按兩下DFDiff.exe運作           

GraalVM編譯的Window版本下載下傳:DfDiff_1.0-beta 路 penngo/DFDiff - Gitee.com

4、運作效果圖

目錄差異對比

基于graalvm和java swing制作一個檔案差異對比的原生應用,附源碼

檔案差異對比

基于graalvm和java swing制作一個檔案差異對比的原生應用,附源碼

5、項目源碼位址

DFDiff: 比較兩個檔案夾目錄差異,并以界面形式顯示兩個目錄的差異