停车测试工具

shuuufu 39c29d5d53 修改win打包脚本 1 ngày trước cách đây
.idea 6640bf03ad fm 2 ngày trước cách đây
scripts 39c29d5d53 修改win打包脚本 1 ngày trước cách đây
src e9f7687ed3 初版完成 1 ngày trước cách đây
.gitignore e9f7687ed3 初版完成 1 ngày trước cách đây
README.md 6640bf03ad fm 2 ngày trước cách đây
mobile_plate_generator.html 6640bf03ad fm 2 ngày trước cách đây
pom.xml 6640bf03ad fm 2 ngày trước cách đây

README.md

Parking Simulator

JDK 25 + JavaFX 25 + AtlantaFX 写的本地停车模拟工具 GUI。

  • 纯本地、单进程、无外部服务
  • 暗色玻璃风界面(在 AtlantaFX PrimerDark 之上叠加自定义 CSS)
  • 跨平台打包:jlink + jpackage,最终产物自带运行时,用户无需安装 JDK
  • 单进程内存目标:默认 -Xmx256m -XX:+UseSerialGC,启动后 RSS ≈ 150 MB 左右

环境

  • JDK 25(要包含 jlinkjpackage
  • Maven 3.9+
  • 打包到 Windows 必须在 Windows 机器上执行(jpackage 不支持交叉打包)
  • 打包到 macOS 必须在 macOS 机器上执行(同上)

开发期一键运行

mvn javafx:run

打包

macOS(在 macOS 上执行)

./scripts/build-mac.sh

产物:dist/mac/ParkingSimulator.app(双击运行,免装 JDK)。 如需 .dmg 镜像,取消 scripts/build-mac.sh 末尾的注释块。

Windows(在 Windows 上执行)

scripts\build-windows.bat

产物:dist\win\ParkingSimulator\ParkingSimulator.exe(整个文件夹拷贝到任意 Windows 机器上双击运行,免装 JDK)。 如需 .msi 安装包,先安装 WiX 3.x,然后取消 scripts\build-windows.bat 末尾的注释块。

体积说明

  • jlink 只把真正用到的 JDK 模块裁进运行时
  • --strip-debug --no-header-files --no-man-pages --strip-native-commands --compress=zip-9 进一步瘦身
  • 典型产物(含自带 JDK 运行时 + JavaFX):
    • macOS .app:约 70 ~ 95 MB
    • Windows app-image:约 70 ~ 95 MB

目录结构

src/main/java/com/fujica/parkingtool/
  App.java                  入口
  ui/MainView.java          主界面
  ui/PlatePreview.java      车牌预览组件
  ui/PlateColor.java        车牌配色枚举
  ui/ConsoleView.java       控制台输出区域
src/main/resources/com/fujica/parkingtool/
  styles/app.css            自定义 CSS
scripts/                    打包脚本
dist/                       打包产物

后续接入业务

MainView 中的按钮回调目前只写日志到控制台占位,业务接入只需替换 setOnAction 中的内容,比如:

  • 随机来一个 → 调用真实随机生成器并通过 MQTT/HTTP 发送
  • 模拟触发 → 拼装上行 JSON 并发到对应 topic
  • 心跳 停止/启动 → 控制后台心跳线程

ConsoleView#log 是线程安全的,可以从任意线程调用。