使用 Java8 自帶的javapackager 打包應用程序

以前使用過 exe4j 打包應用程序,打包成一個exe文件。

文件很小,但要求必須在裝有jre的電腦上運行。

如果一個電腦上沒有安裝 jre,就必須在打包時附帶一個jre。

這樣一來,不管你寫的程序多麼小,用戶都不得不下載一個200MB左右的 jre。而且 jre還必須放置在exe文件的同級目錄下。

如果再多寫一個程序,代碼50KB,但用戶還得下載200MB的文件。相當麻煩,特別冗餘。

如果客戶希望只下載一個jre,不論jre放在哪,都可以運行你給他打包exe文件,用戶不得不配置環境變量。

這是Java打包成exe的通病,我看了一些教程,對於這方面,似乎沒有很好改進。

本篇博客採用Java8 自帶的javapackager 打包應用程序,雖然打包後的文件大小依然很龐大(相當於一個jre的大小了),但是此種方法比exe4j簡單,方便

首先,同樣的將項目打包成一個 jar包。

然後,打開cmd命令行,進入到存放jar包的路徑。

運行如下命令:

javapackager -deploy -native image  -outdir outdir -outfile outfiles -srcfiles I_Love_You.jar -appclass frame.TestMain -name biaobai520

各個參數的解釋:
javapackager 是java8自帶的打包程序

-deploy 表示要打包成exe或者其他平臺的包

-native image 創建原生的鏡像(打成window的exe)

-outdir outdir ,輸出的目錄,後面的具體目錄

–outfile outfilese 輸出的文件,後面是文件名

-srcfiles I_Love_You.jar ,要打包的jar文件,後面是具體文件

–appclass frame.TestMain ,jar的全限定名,就是詳細包名+類名,也就是程序的入口類的全類名

-name Java2exe ,最終給使用者呈現的名字,就是 結果驗證 過程中,雙擊的那個文件名

當然,還有其他的參數,比如 -description 應用的描述、-Bicon 圖標等等。在cmd中,使用 javapackager 可以列舉出所有的參數及其註釋

特別注意
以上參數中使用中文是不好使的,親測outdir,outfile ,name 都可以英文自定義,但是不可以使用中文哦。

附上效果圖:
在這裏插入圖片描述

打包後的這個runtime:
在這裏插入圖片描述
它其實就是一個jre:
在這裏插入圖片描述
只不過它比jre小了一丟丟。小了10M左右吧。

雖說整個文件夾大小接近200MB,但是壓縮以後僅僅只有73MB左右:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章