可執行jar打包成exe文件(運行無須jre環境)

  可執行jar打包成exe文件,最常見的大概就是exe4j了吧。不過,現在都2020年了,這裏介紹一下,使用 java8提供的 javapackager 的方式來實現。

預備工作

  首先,需要預備工作

1.java8環境

  這個就不用多說了

2.Inno Setup Compiler

  window上軟件打包工具

3.wix

  打包成exe文件需要

4.示例的可執行jar

  文中給出的案例是使用Swing組件彈出一個對話框,代碼很簡單,就兩行代碼

package com.frank.test;
public class Java2exe {
    public static void main(String[] args) {
        javax.swing.JOptionPane.showMessageDialog(null, "hello java2exe");
        System.exit(0);
    }
}

  打成可執行的jar,也很簡單,比如使用的是eclipse,可以:選中項目,右鍵,選擇 Export

導出

  導出時的配置勾選

導出配置勾選

開始打包

  首先進入jar所屬文件夾

  比如我是放在 D:\tmp\java2exe 目錄下,進來,然後,打開cmd,cmd也得進入D:\tmp\java2exe 目錄。這裏有個小技巧,直接在文件夾的地址欄 輸入cmd,再回車,就直接進入cmd界面,並且已經進入當前路徑

  再執行打包命令

javapackager -deploy -native image  -outdir outdir -outfile Java2exe -srcfiles java2exe.jar -appclass com.frank.test.Java2exe -name Java2exe

  然後,你就會看到,文件夾內多了一個 outdir 文件夾,裏面有很多東西,在outdir/bundles/Java2exe目錄下,有一個 Java2exe.exe 文件,它就是我們最終需要的exe可執行文件

結果驗證

  雙擊Java2exe.exe文件測試一下

驗證結果

參數詳解

  好了,已經可以達到預期了。但是 打包過程中,使用到的命令,具體是什麼含義呢?一個一個來解釋

javapackager -deploy -native image  -outdir outdir -outfile Java2exe -srcfiles java2exe.jar -appclass com.frank.test.Java2exe -name Java2exe

  其中:

  javapackager 是java8自帶的打包程序

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

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

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

  -outfile Java2exe 輸出的文件,後面是文件名

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

  -appclass com.frank.test.Java2exe ,jar的全限定名,就是詳細包名+類名

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

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

用戶無JRE環境,可以直接運行?

  可以的。如果要提供給用戶使用,用戶電腦上沒有安裝JRE環境,需要把 outdir 全部提供給用戶,因爲 outdir文件夾內,包含了JRE所需的所有文件。

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