JavaFX應用程序打包


Java開發過程中存在一個難題:分發自己的程序,需要客戶電腦中已安裝jre環境。如果用戶在系統中沒有要求的Java版本,則必須安裝它。JavaFX提供新的部署選項稱為自包含應用程序包(A self-contained application)。

A self-contained application is a wrapper for your JavaFX application, making it independent of what the user might have installed.

一個自包含應用包是一個包含Java應用和它的依賴的包,它使得應用可獨立於用戶可能安裝的內容。

 

本文主要介紹如何使用IDEA打包,以及在打包過程中遇到的各種坑。我們可以直接將 java 程序打包成安裝包,具體來說:

l  Windows:exe,msi

l  Mac:dmg,pkg

l  Linux:deb,rpm

一、使用IDEA Artifact打包exe

1、添加Artifacts

“File Structure”—“Artifacts”,點擊“+”添加“JavaFx application”—“From Module XXX”。

2、添加依賴

   將右邊模塊及其依賴的底層模塊下的jar包添加到左邊(Put Into Output Root)

   將右邊依賴的底層模塊打包到右邊(Pack Into /xxx.jar)。

3、配置JavaFX打包信息

         Application class中添加項目的啟動類,將Native bundle設為all或image。

    其他信息可不填:

    Title:應用標題

    Vendor:應用作者

4、構建Artifacts。

  輸出目錄:out\artifacts\client\bundles\client

注意事項

1、  所有依賴項必須全部添加到左邊,否則exe將無法執行。此時需

2、  JavaFX打包信息中不可以使用中文,否則構建會報錯。

3、  IDEA Artifacts雖然可以打包各個系統的執行程序,但是在一個系統上只能打隊友系統的安裝包。比如在windows上,就只能打包成exe。

二、為JavaFX應用創建安裝程序

1、首先需要下載兩個工具

  • exe4j,一個將jar轉換成exe的工具
  • inno setup,一個將依賴和exe一起打成一個安裝程序的工具

2、maven把Springboot項打包

可以再IDEA的Terminal中直接輸入命令或者用IDEA右側的Maven工具。

3、打包成exe

先把exe4j.rar解壓,根據自己系統版本運行安裝程序,直接下一步到底,安裝后運行。

設置執行權限和縮放

使用inno setup創建一個打包腳本。配置到最后一步會彈出問你是否馬上編譯,選擇否,先把腳本寫好再自己編譯。

在下圖位置加一行代碼  #define MyJreName "runtime" 

 在[Files]下加一行代碼

 Source: "自己本地JRE路徑\*"; DestDir: "{app}\{#MyJreName}"; Flags: ignoreversion recursesubdirs createallsubdirs 

注意事項

1、  創建setup時打包的jre路徑應該與打包成exe時自定義的jre路徑保持一致,比如上圖中的“runtime”。否則,安裝后的exe程序會報錯。

2、  在JVM啟動參數上加上 -Dfile.encoding=UTF-8,強行設置系統文件編碼格式為utf-8。

 

測試運行

使用VMware虛擬機

參考資料

記錄一次Springboot項目打包成exe 

 

其他打包參考如下資料:

第七部分:部署   你如何使用Eclipse和e(fx)clipse插件創建本地包

 

IDEA打包

記錄一次Springboot項目打包成exe 

將idea中的JavaFX項目打包成可執行的exe應用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM