上段时间弄了个桌面小应用练手“基于graalvm和java swing制作一个文件差异对比的原生应用”,最段加了些功能,并使用Graalvm生成编译为原生应用,在Window和Linux上都能运行。
开源地址:DFDiff: DFDiff是一款使用Java Swing开发的,并使用Graalvm编译成原生应用的文本处理工具,提供文本编辑和文本对比功能。
1、介绍
DFDiff是一款使用Java Swing开发的,并使用Graalvm编译成原生应用的文本处理工具,提供文本编辑和文本对比功能。
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
3.2.1、编译构建为jar包
mvn package
3.2.2、使用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
# 或
mvn -Pnative -Dagent exec:exec@java-agent
3.2.3、编译为原生应用,Window平台下为DFDiff.exe,Linux平台上为DFDiff
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)
editbin /subsystem:windows DFDiff.exe
3.2.5、添加应用图标
window下修改应用图标可以使用第三方工具WinRun4J:[https://github.com/poidasmith/winrun4j](https://github.com/poidasmith/winrun4j)
RCEDIT.exe /I DFDiff.exe logo.ico
3.3、编译后文件
3.3.1、Windows平台编译后得到的运行文件
3.3.2、Linux平台编译后得到的运行文件
- Window平台下运行
双击DFDiff.exe运行
GraalVM编译的Window版本下载:[dfdiff-windows-1.2.0](https://gitee.com/penngo/dfdiff/releases)
4、已实现菜单功能
├──文件
| ├─新建文件
| ├─打开文件
| ├─打开文件夹
| ├─最近打开的文件/文件夹
| ├─保存文件
| ├─另存文件
| └──退出
├──编辑
| ├─撤消
| ├─恢复
| ├─复制
| ├─粘贴
| ├─剪切
| ├─查找...
| ├─字体
| ├─换行
| └──恢复
├──工具
| ├─文件夹对比
| ├─文件对比
| └──json格式化
├──窗口
| ├─窗口层叠
| └──窗口最小化
└──帮助
└──关于
5、运行截图
5.1、Windows下运行截图
5.1.1、文本编辑功能
5.1.2、文件夹差异对比
5.1.3、文件差异对比
5.2、Linux平台下运行截图
运行程序
./DFDiff
5.2.1、Ubuntu 20运行截图
5.2.2、Centos 7运行截图
5.2.3、Uos 20运行截图
开源地址:DFDiff: DFDiff是一款使用Java Swing开发的,并使用Graalvm编译成原生应用的文本处理工具,提供文本编辑和文本对比功能。
本文暂时没有评论,来添加一个吧(●'◡'●)