將java程序打包成可執(zhí)行文件的實現(xiàn)方式
1.問題提出
當你寫了一個很炫酷的java小游戲,你迫不及待想給朋友分享。然而,你發(fā)給朋友之后,他卻表示無法執(zhí)行。因為我們無法保證其他人的電腦上已經(jīng)安裝了java運行環(huán)境。
所以,我們有哪些方法把我們的炫酷代碼分享給朋友呢?
2.如何將java程序打包成可執(zhí)行文件
這里介紹兩種方式。
2.1將編譯后的代碼及jre運行環(huán)境一起打包
1. 將程序編譯后,拷貝一份jre環(huán)境,放在同一個文件目錄下,如下圖所示

2. 新建一個文件,命名為start.bat。輸入以下內容
set Path="jre1.8.0_261\bin" java Main pause
解釋下這幾句批處理代碼
- 第一句:設置局部環(huán)境變量(常規(guī)jdk環(huán)境變量是全局配置)。由于此處環(huán)境變量的作用只在此處運行代碼有效,所以只引入jre配置則可。
- 第二句:運行java類文件或者jar文件(按實際情況修改成別的啟動命令)
- 第三句:暫停該批處理程序(沒有這一句程序會一閃而過)
2.2使用第三方打包工具
可以使用第三方打包工具,直接打包成系統(tǒng)可執(zhí)行文件,例如windows的exe程序。
下面以launch4j作為演示,下載地址:launch4j官網(wǎng)
- 打開Launch4j,點擊"New configuration file"新建一個配置文件;
- 設置輸入選項,指定主類名稱和JRE路徑;
- 添加輸出選項,指定生成的EXE文件名稱和位置;
- 完成配置后,點擊"Build wrapper"構建wrapper;
- 最后點擊"Save config as..."保存配置文件。
根據(jù)自己的需求修改配置文件中的參數(shù),然后點擊"Build"按鈕就可以生成可執(zhí)行的EXE文件了。

launch4j的功能很完善,可以定制程序圖標,設置運行jvm參數(shù)等等,也支持把jre一起打進程序或者從指定網(wǎng)站下載。
2.3使用jdk自帶的jpackage工具
jpackage 是從 Java 14 開始提供的一個工具,它允許開發(fā)者為 Java 應用程序生成特定系統(tǒng)平臺的可執(zhí)行程序,而不需要在目標系統(tǒng)上預先安裝 Java 運行時環(huán)境(JRE)。
jpackage 通過將 JRE 和應用程序的 JAR 文件以及所有必要依賴項打包在一起,生成特定平臺的可執(zhí)行程序,例如 Windows 上的 .exe 文件或 macOS 上的 .dmg 文件。
使用 jpackage 的好處包括:
- 無需安裝 Java:用戶無需在本地安裝 Java 即可運行應用程序。
- 易于分發(fā):生成的可執(zhí)行文件或安裝程序可以輕松地在目標平臺上分發(fā)和安裝。
- 自定義:
jpackage支持自定義應用名稱、圖標等,提供了豐富的自定義選項。 - 跨平臺:雖然每種格式必須在相應的平臺上構建,但
jpackage本身支持跨平臺生成不同的包格式。
基本的 jpackage 使用示例如下:
jpackage --input . --name YouAppName --main-jar yourapp.jar
對于 Windows 平臺,jpackage 需要 WiX 工具來生成安裝程序,并且可能需要額外的參數(shù)來指定控制臺模式、快捷方式等2。
此外,jpackage 可以與 jlink 工具結合使用,創(chuàng)建自定義的 Java 運行時映像,進一步減小應用程序的大小并優(yōu)化性能3。
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringBoot實戰(zhàn)之實現(xiàn)結果的優(yōu)雅響應案例詳解
這篇文章主要介紹了SpringBoot實戰(zhàn)之實現(xiàn)結果的優(yōu)雅響應案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下2021-09-09
Spring mvc服務端數(shù)據(jù)校驗實現(xiàn)流程詳解
這篇文章主要介紹了Spring mvc服務端數(shù)據(jù)校驗實現(xiàn)流程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-09-09

