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

讓 Java 程式自帶 JRE:綠色部署完整指南 (含精簡與 EXE 包裝)

     編輯:J2SE

核心原理

java.exe 尋找 JRE 順序:

  1. 自身目錄下的 jre。
  2. 父目錄下的 jre (關鍵)。
  3. Windows 註冊表。

將 JRE 複製到應用父目錄 (如 MyApp/jre),java.exe 即會使用私有 JRE,不依賴系統安裝。

操作步驟

  1. 應用打包為 MyApp.jar,置於 MyApp/。
  2. 複製 JRE (如 jre1.5.0) 至 MyApp/jre。
  3. 測試:
    set path=MyApp\jre\bin
    java -verbose -jar MyApp.jar
    輸出 [Opened MyApp\jre\lib\rt.jar] 確認成功。

精簡 JRE (70MB → ~50MB → 更小)

  • 保留:bin/java.exe 或 javaw.exe、lib/rt.jar, jsse.jar, jce.jar, charsets.jar、lib/i386、lib/zi/<地區>。
  • 刪除:license、多數 bin/*.exe、未用 lib/ext、其他地區檔、source.zip 等。
  • 深度裁剪可參考 JMF 播放器 (僅數 MB),需反覆測試確保無 ClassNotFound。

EXE 包裝器 (C++ Win32)


int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR cmd, int show) {
    STARTUPINFO si = {sizeof(si)}; PROCESS_INFORMATION pi;
    if (!CreateProcess("jre\\bin\\javaw.exe",
        "jre\\bin\\javaw.exe -jar MyApp.jar", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
        ErrorExit("CreateProcess failed");
    WaitForSingleObject(pi.hProcess, INFINITE);
    CloseHandle(pi.hProcess); CloseHandle(pi.hThread);
    return 0;
}
  • 編譯為 MyApp.exe,與 jre/、MyApp.jar 同目錄。
  • 用戶雙擊 EXE 即運行,JRE 完全隱藏,體驗如原生 Win32 程式。

優缺點總結

優點缺點
零安裝、零配置、版本隔離、綠色攜帶體積較大 (即使精簡仍 ~數十 MB)、需維護多平台 JRE、安全性更新需自行替換

本文來自編程入門網:原文連結

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved