首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 程序打包為 Windows EXE:Delphi 實現通用 Jar Launcher 與配置文件方案

     編輯:Java 相關知識

用戶習慣雙擊 EXE 運行程序,而 java -jar 需命令行。本文提供一個極簡 Delphi 2009 實現的 launcher.exe,讀取同目錄 config.ini 指定的 JAR 路徑,調用 javaw -jar 啟動,支援圖標自定義、參數擴展,適合桌面應用分發。

核心原理

// Delphi 核心代碼
program launcher;
uses Windows, ShellAPI, IniFiles, SysUtils;
var ini: TIniFile; JarFile: String;
begin
  Application.Initialize;
  ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'config.ini');
  JarFile := ini.ReadString('config', 'JarFile', '');
  ShellExecute(GetActiveWindow, 'open', 'javaw', PWideChar('-jar ' + JarFile), '', SW_NORMAL);
  ini.Free;
  Application.Run;
end.

部署結構

launcher.exe
config.ini
jars/
  └── swt.jar   (或任意應用 JAR)

config.ini 範例

[config]
JarFile = jars\swt.jar

優勢與擴展

  • 零依賴:僅調用系統 javaw,無需打包 JRE(若需內嵌 JRE 可改用 Launch4j、jpackage)。
  • 動態更新:launcher 可先下載最新 JAR 再啟動,實現自動更新。
  • 圖標自定義:Delphi 專案資源直接替換 EXE 圖標。
  • 跨語言移植:邏輯極簡,C/C++/Go/Rust 均可 10 分鐘移植。

現代替代方案

  • jpackage (JDK 14+):官方工具,生成原生安裝包(exe/msi/dmg/deb),內嵌 JRE、支援簽名、自動更新。
  • Launch4j:成熟開源,XML 配置,支援 JRE 搜尋、Splash 圖、單實例鎖、版本資訊。
  • GraalVM Native Image:AOT 編譯為原生機器碼,無 JRE、啟動極快、體積小,但需處理反射/動態代理配置。
附件提供完整 Delphi 源碼與編譯後 EXE,讀者可直接修改配置投入使用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved