| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- @echo off
- REM ============================================================
- REM 在 Windows 上把 Parking Simulator 打包成绿色免安装目录。
- REM 产物:dist\win\ParkingSimulator\ParkingSimulator.exe
- REM
- REM 依赖:
- REM - JDK 25 (含 jlink / jpackage)
- REM - Maven 3.9+
- REM
- REM jpackage --type app-image 不需要 WiX;如需 .msi/.exe 安装包
- REM 把脚本末尾的注释段取消即可(需要先安装 WiX 3.x)。
- REM ============================================================
- setlocal EnableExtensions EnableDelayedExpansion
- cd /d "%~dp0\.."
- set APP_NAME=ParkingSimulator
- set APP_VERSION=1.0.0
- set APP_VENDOR=Fujica
- set MAIN_MODULE=com.fujica.parkingtool
- set MAIN_CLASS=com.fujica.parkingtool.App
- set OUT_DIR=dist\win
- set RUNTIME_DIR=target\runtime-win
- set MODULE_PATH=target\modules
- set RUNTIME_MODULES=%MAIN_MODULE%,javafx.base,javafx.graphics,javafx.controls,jdk.localedata,jdk.crypto.ec,jdk.crypto.cryptoki
- where mvn >nul 2>nul || (echo [ERR] 找不到 mvn & exit /b 1)
- where jlink >nul 2>nul || (echo [ERR] 找不到 jlink & exit /b 1)
- where jpackage >nul 2>nul || (echo [ERR] 找不到 jpackage & exit /b 1)
- echo ==^> [1/4] Maven 构建 + 拉取依赖到 target\modules
- call mvn -q -DskipTests clean package || exit /b 1
- echo ==^> [2/4] jlink 生成最小运行时 -> %RUNTIME_DIR%
- if exist "%RUNTIME_DIR%" rmdir /s /q "%RUNTIME_DIR%"
- jlink ^
- --module-path "%JAVA_HOME%\jmods;%MODULE_PATH%" ^
- --add-modules %RUNTIME_MODULES% ^
- --no-header-files ^
- --no-man-pages ^
- --strip-debug ^
- --strip-native-commands ^
- --compress=zip-9 ^
- --output "%RUNTIME_DIR%" || exit /b 1
- echo ==^> [3/4] jpackage 生成绿色目录 -> %OUT_DIR%
- if exist "%OUT_DIR%" rmdir /s /q "%OUT_DIR%"
- mkdir "%OUT_DIR%"
- set ICON_ARG=
- if exist "src\main\resources\com\fujica\parkingtool\icon.ico" (
- set ICON_ARG=--icon src\main\resources\com\fujica\parkingtool\icon.ico
- )
- jpackage ^
- --type app-image ^
- --name %APP_NAME% ^
- --app-version %APP_VERSION% ^
- --vendor "%APP_VENDOR%" ^
- --module-path "%MODULE_PATH%" ^
- --module "%MAIN_MODULE%/%MAIN_CLASS%" ^
- --runtime-image "%RUNTIME_DIR%" ^
- --dest "%OUT_DIR%" ^
- --java-options "-Xms32m" ^
- --java-options "-Xmx256m" ^
- --java-options "-XX:+UseSerialGC" ^
- --java-options "-Dprism.lcdtext=false" ^
- %ICON_ARG% || exit /b 1
- echo ==^> [4/4] 完成
- echo [OK] 产物:%OUT_DIR%\%APP_NAME%\%APP_NAME%.exe
- echo 整个 %OUT_DIR%\%APP_NAME% 文件夹可拷贝到任意 Windows 机器上双击运行。
- REM === 可选:打包 .msi 安装程序(需要预装 WiX 3.x) ===
- REM jpackage ^
- REM --type msi ^
- REM --name %APP_NAME% ^
- REM --app-version %APP_VERSION% ^
- REM --vendor "%APP_VENDOR%" ^
- REM --module-path "%MODULE_PATH%" ^
- REM --module "%MAIN_MODULE%/%MAIN_CLASS%" ^
- REM --runtime-image "%RUNTIME_DIR%" ^
- REM --dest "%OUT_DIR%" ^
- REM --win-dir-chooser --win-shortcut --win-menu ^
- REM %ICON_ARG%
- endlocal
|