Java生成exe可執(zhí)行文件
一、軟件準(zhǔn)備
1. 下載將jar包轉(zhuǎn)化為EXE的工具EXE4J,下載地址為:
ej-technologies - Java APM, Java Profiler, Java Installer Builder
2. 下載完成之后,按照如下步驟安裝EXE4J。
二、生產(chǎn)jar文件
在將寫好的Java程序轉(zhuǎn)換為EXE程序前,需要先將Java程序?qū)С鰹閖ar包,然后才能通過EXE4J生成想要的EXE程序。在這里,筆者使用的工具為eclipse,具體步驟如下:
1.打開一個含有main方法且已調(diào)試可運行的Java工程,右鍵點擊后選擇export,再選擇Java選項下的JAR file選項。
2.選擇要導(dǎo)出的Java工程,并填寫jar包的導(dǎo)出路徑。點擊finish即可在對應(yīng)路徑下看到生成的jar包。
三、將jar文件轉(zhuǎn)化為EXE文件
1. 打開exe4j Wizard.exe,在首頁先進(jìn)行License注冊,否則生成的exe文件在運行時會提示:“this executable was create with an evaluation exe4j”。注冊時可以使用如下的注冊號:
A-XVK258563F-1p4lv7mg7sav
A-XVK209982F-1y0i3h4ywx2h1
A-XVK267351F-dpurrhnyarva
A-XVK204432F-1kkoilo1jy2h3r
A-XVK246130F-1l7msieqiwqnq
A-XVK249554F-pllh351kcke50
A-XVK238729F-25yn13iea25i
A-XVK222711F-134h5ta8yxbm0
A-XVK275016F-15wjjcbn4tpj
A-XVK275016F-15wjjcbn4tpj
2. 點擊next,選擇”JAR in EXE” mode。
3.點擊next,填寫生成的應(yīng)用名和輸出目錄。
4.點擊next,根據(jù)自己的應(yīng)用類別進(jìn)行選擇,并填入可執(zhí)行文件的名稱。其余選項可根據(jù)自己的需要進(jìn)行設(shè)置。
生成的EXE默認(rèn)是在32位的JDK環(huán)境先運行。如果是目標(biāo)計算機(jī)的運行環(huán)境為64位,則還應(yīng)勾選如下選項:
5. 點擊next,添加需要生成EXE的jar包并設(shè)置好它的mainclass。
6.根據(jù)自己應(yīng)用對Java API的使用情況,設(shè)定運行時jre的最小版本和最大版本限定。
7. 接著設(shè)定生成EXE文件時所需要依賴的JDK。如果已將Java正確配置到系統(tǒng)環(huán)境變量中,該步驟一般可跳過。
8. 接著一路next,看到如下界面時說明已經(jīng)將jar包轉(zhuǎn)換為對應(yīng)的exe文件。這時便可以打開對應(yīng)的exe文件看是否正常運行。
四、可能遇到的問題
1.執(zhí)行EXE文件時提示java.lang.NoClassDefFoundError
這是由于你程序中有引用到第三方的jar包,而生成EXE文件時沒有將其關(guān)聯(lián)起來。在ConfigureJava invocation時,需要將引用到的第三方庫也包含進(jìn)來。
2. 執(zhí)行EXE文件時提示java.lang.UnsatisfiedLinkError
這是由于程序中引用到的jar包中,有通過JNI機(jī)制去調(diào)用到一些dll文件中的方法,而在配置生成EXE的過程中沒有指定。在Configure Java invocation時,需要在native libraries中添加dll所在的目錄。
3. 執(zhí)行EXE文件時提示java.lang.UnsupportedClassVersionError
這個一般是由于運行時JDK版本與開發(fā)的JDK版本不一致導(dǎo)致(比如你開發(fā)時用的是64位的JDK,而在其它電腦上運行時,它的JDK缺失32位的),兩邊的JDK位數(shù)一致就行。
到此這篇關(guān)于Java生成exe可執(zhí)行文件的文章就介紹到這了,更多相關(guān)Java生成exe文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot 中嵌入式 Servlet 容器自動配置原理解析
這篇文章主要介紹了Spring Boot 中嵌入式 Servlet 容器自動配置原理解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11Java實用技巧:如何使用String去除開頭的第一個字符?
這篇文章主要介紹了Java實用技巧:如何使用String去除開頭的第一個字符,需要的朋友可以參考下2023-11-11Java實現(xiàn)前端jsencrypt.js加密后端解密的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用jsencrypt.js實現(xiàn)前端加密,利用Java實現(xiàn)后端解密的功能,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-09-09SpringBoot MDC全鏈路調(diào)用日志跟蹤實現(xiàn)詳解
這篇文章主要為大家介紹了SpringBoot MDC全鏈路調(diào)用日志跟蹤實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02SpringBoot集成Druid配置(yaml版本配置文件)詳解
這篇文章主要介紹了SpringBoot集成Druid配置(yaml版本配置文件),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12Spring使用AOP完成統(tǒng)一結(jié)果封裝實例demo
這篇文章主要介紹了Spring使用AOP完成統(tǒng)一結(jié)果封裝,本文通過實現(xiàn)demo給大家詳細(xì)講解,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-02-02