最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

將java程序打包成可執(zhí)行文件的實現(xiàn)方式

 更新時間:2025年02月24日 15:45:22   作者:jforgame  
本文介紹了將Java程序打包成可執(zhí)行文件的三種方法:手動打包(將編譯后的代碼及JRE運行環(huán)境一起打包),使用第三方打包工具(如Launch4j)和JDK自帶工具(jpackage),每種方法都有其優(yōu)缺點,可根據(jù)實際需求選擇合適的方式

1.問題提出

當(dāng)你寫了一個很炫酷的java小游戲,你迫不及待想給朋友分享。然而,你發(fā)給朋友之后,他卻表示無法執(zhí)行。因為我們無法保證其他人的電腦上已經(jīng)安裝了java運行環(huán)境。

所以,我們有哪些方法把我們的炫酷代碼分享給朋友呢?

2.如何將java程序打包成可執(zhí)行文件

這里介紹兩種方式。

2.1將編譯后的代碼及jre運行環(huán)境一起打包

1. 將程序編譯后,拷貝一份jre環(huán)境,放在同一個文件目錄下,如下圖所示

2. 新建一個文件,命名為start.bat。輸入以下內(nèi)容

set Path="jre1.8.0_261\bin" 
java Main
pause

解釋下這幾句批處理代碼

  • 第一句:設(shè)置局部環(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"新建一個配置文件;
  • 設(shè)置輸入選項,指定主類名稱和JRE路徑;
  • 添加輸出選項,指定生成的EXE文件名稱和位置;
  • 完成配置后,點擊"Build wrapper"構(gòu)建wrapper;
  • 最后點擊"Save config as..."保存配置文件。

根據(jù)自己的需求修改配置文件中的參數(shù),然后點擊"Build"按鈕就可以生成可執(zhí)行的EXE文件了。

launch4j的功能很完善,可以定制程序圖標(biāo),設(shè)置運行jvm參數(shù)等等,也支持把jre一起打進程序或者從指定網(wǎng)站下載。

2.3使用jdk自帶的jpackage工具

jpackage 是從 Java 14 開始提供的一個工具,它允許開發(fā)者為 Java 應(yīng)用程序生成特定系統(tǒng)平臺的可執(zhí)行程序,而不需要在目標(biāo)系統(tǒng)上預(yù)先安裝 Java 運行時環(huán)境(JRE)。

jpackage 通過將 JRE 和應(yīng)用程序的 JAR 文件以及所有必要依賴項打包在一起,生成特定平臺的可執(zhí)行程序,例如 Windows 上的 .exe 文件或 macOS 上的 .dmg 文件。

使用 jpackage 的好處包括:

  1. 無需安裝 Java:用戶無需在本地安裝 Java 即可運行應(yīng)用程序。
  2. 易于分發(fā):生成的可執(zhí)行文件或安裝程序可以輕松地在目標(biāo)平臺上分發(fā)和安裝。
  3. 自定義jpackage 支持自定義應(yīng)用名稱、圖標(biāo)等,提供了豐富的自定義選項。
  4. 跨平臺:雖然每種格式必須在相應(yīng)的平臺上構(gòu)建,但 jpackage 本身支持跨平臺生成不同的包格式。

基本的 jpackage 使用示例如下:

jpackage --input . --name YouAppName --main-jar yourapp.jar

對于 Windows 平臺,jpackage 需要 WiX 工具來生成安裝程序,并且可能需要額外的參數(shù)來指定控制臺模式、快捷方式等2。

此外,jpackage 可以與 jlink 工具結(jié)合使用,創(chuàng)建自定義的 Java 運行時映像,進一步減小應(yīng)用程序的大小并優(yōu)化性能3。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Swagger中@API?tags中含有中文異常問題的解決

    Swagger中@API?tags中含有中文異常問題的解決

    這篇文章主要介紹了Swagger中@API?tags中含有中文異常問題的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教。
    2022-01-01
  • JVM核心教程之JVM運行與類加載全過程詳解

    JVM核心教程之JVM運行與類加載全過程詳解

    我們都知道一個java程序運行要經(jīng)過編譯和執(zhí)行,但是這太概括了,中間還有很多步驟,下面這篇文章主要給大家介紹了關(guān)于JVM核心教程之JVM運行與類加載全過程的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。
    2018-04-04
  • Feign遠程調(diào)用傳遞對象參數(shù)并返回自定義分頁數(shù)據(jù)的過程解析

    Feign遠程調(diào)用傳遞對象參數(shù)并返回自定義分頁數(shù)據(jù)的過程解析

    這篇文章主要介紹了Feign遠程調(diào)用傳遞對象參數(shù)并返回自定義分頁數(shù)據(jù)的過程解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • TreeSet判斷重復(fù)元素解析及代碼示例

    TreeSet判斷重復(fù)元素解析及代碼示例

    這篇文章主要介紹了TreeSet判斷重復(fù)元素解析及代碼示例,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • java校驗String是否符合時間格式y(tǒng)yyy-MM-dd?HH:mm:ss的幾種方法

    java校驗String是否符合時間格式y(tǒng)yyy-MM-dd?HH:mm:ss的幾種方法

    在實際項目開發(fā)中,跟時間參數(shù)打交道是必不可少的,為了保證程序的安全性、健壯性,一般都會對參數(shù)進行校驗,這篇文章主要介紹了java校驗String是否符合時間格式y(tǒng)yyy-MM-dd?HH:mm:ss的幾種方法,需要的朋友可以參考下
    2025-07-07
  • 基于OpenCV與JVM實現(xiàn)矩陣處理圖像

    基于OpenCV與JVM實現(xiàn)矩陣處理圖像

    本文主要介紹了Java圖像處理實戰(zhàn)之基于OpenCV與JVM實現(xiàn)矩陣處理圖像。文中的示例代碼講解詳細,對我們學(xué)習(xí)圖像處理有一定的幫助,感興趣的可以試一試
    2022-01-01
  • IDEA使用Git對分支進行開發(fā)合并的全過程

    IDEA使用Git對分支進行開發(fā)合并的全過程

    本文介紹了在IDEA中使用Git進行分支開發(fā)和合并的具體操作步驟,并分享了全局用戶名和郵箱的配置命令,幫助開發(fā)者規(guī)范高效地管理項目分支,需要的朋友可以參考下
    2025-10-10
  • Java雜談之合格程序員一定要會閱讀別人的源碼

    Java雜談之合格程序員一定要會閱讀別人的源碼

    閱讀別人的代碼作為開發(fā)人員是一件經(jīng)常要做的事情。一個是學(xué)習(xí)新的編程語言的時候通過閱讀別人的代碼是一個最好的學(xué)習(xí)方法,另外是積累編程經(jīng)驗
    2021-09-09
  • 基于Scala和Java方法的相互調(diào)用

    基于Scala和Java方法的相互調(diào)用

    這篇文章主要介紹了Scala和Java方法的相互調(diào)用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 詳解IDEA自定義注釋模板(javadoc)

    詳解IDEA自定義注釋模板(javadoc)

    這篇文章主要介紹了詳解IDEA自定義注釋模板(javadoc),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04

最新評論

巴林左旗| 天长市| 微博| 清徐县| 梧州市| 宣武区| 昆山市| 连云港市| 正镶白旗| 靖安县| 宾川县| 无棣县| 天柱县| 信宜市| 丹寨县| 洞头县| 澄迈县| 贵港市| 淮南市| 抚松县| 遵义县| 永川市| 普定县| 海盐县| 大港区| 大竹县| 鲁山县| 集贤县| 德化县| 堆龙德庆县| 新源县| 福清市| 安仁县| 忻州市| 夏津县| 陇西县| 渭源县| 曲阜市| 乐陵市| 贵港市| 南郑县|