程序员开发实例大全宝库

网站首页 > 编程文章 正文

GraalVM原生编译:DFDiff文本编辑工具1.2.0版本开发

zazugpt 2024-08-31 05:12:42 编程文章 18 ℃ 0 评论

上段时间弄了个桌面小应用练手“基于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编译成原生应用的文本处理工具,提供文本编辑和文本对比功能。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表