使用 exe4j 生成 jre + jar 可執行文件的本質(zhì)就是在外面包裹了一層 C/C++ 程序 , 在該程序中 , 執行 system 系統調用 , 調用 jre 目錄下的 java 命令 , 執行 jar 文件 , 也可以自己實(shí)現 ;
參考 【C 語(yǔ)言】System 系統調用 ( Windows ) 代碼 :
#include <stdlib.h>
int main()
{
system('notepad');
}
上述代碼相當于在 DOS 命令行窗口中 , 執行了 notepad 命令 , 打開(kāi)了記事本 ;
本篇博客介紹使用 exe4j 生成 Windows 上自帶 JRE 的可執行文件 ;
前置博客 【IntelliJ IDEA】導出可執行 JAR 包 , 將該博客中生成的 jar 包與 jre 進(jìn)行打包 , 并執行 ;
將 【IntelliJ IDEA】導出可執行 JAR 包 , 將該博客中生成的 jar 包拷貝到一個(gè)單獨的工作目錄中 , 這里拷貝到 D:\exe4j_work 目錄中 ;
找個(gè) JDK 安裝目錄 , 將其中的 jre 目錄拷貝到 D:\exe4j_work 目錄 , 用于之后的打包 , jdk 1.8 的 jre 有 200 MB 左右 ;
到 https://exe4j.apponic.com/ 下載 exe4j 工具 ;
下載頁(yè)面 https://exe4j.apponic.com/download/ , 下載 64 位即可 ;
下載完成 !
安裝 exe4j 工具 , 運行 exe4j_windows-x64_6_0_1.exe 安裝文件 ,
同意許可協(xié)議 ,
選擇安裝目錄 ,

等待安裝完成 ,

安裝完成 , 運行 !

運行后的歡迎頁(yè) ' 1. Welcom ' , 不進(jìn)行任何操作 , 選擇 ' Next ' 按鈕 ,

' 2. Project type ' 選項中 , 選擇 ' JAR in EXE ' mode 模式 , 繼續 Next ,

' Short name of your application ' 選項設置的是打包后應用的別名 , 隨便輸入個(gè)字符串即可 ;
' Output directory ' 設置的是輸出路徑 ,
設置完后 , 繼續后續設置 ,

生成的程序類(lèi)型 ' Executable type ' , 如果只是 Java 命令行程序 , 選擇 Console application ,
如果是 Java Swing 程序 , 選擇 GUI application ,
' Executable name ' 是生成的可執行文件名稱(chēng) , 這里任意輸入一個(gè)字符串即可 ,
' Icon File ' 在文件系統中選擇一個(gè) ' .ico ' 格式的圖標文件 ,
ico 格式圖標到 http://www.ico51.cn/ 網(wǎng)站生成 ,

點(diǎn)擊左側的 ' 32-bit or 64-bit ' 選項卡 , 選擇生成 64 位可執行文件 , 勾選下面的單選框 ,

然后進(jìn)入到 ' 5. Java invocation ' 設置選項卡 , 指定 Java 虛擬機參數 ,
-Dfile.encoding=utf-8
配置完之后 , 點(diǎn)擊右側 ' + ' 按鈕 , 選擇 jar 文件 , 點(diǎn)擊 ' OK ' 設置該 jar 文件路徑 ,

選擇主函數所在類(lèi) , 點(diǎn)擊 ' Main class from ' 右側的 ' … ' 按鈕進(jìn)行設置 , 在彈出的 ' Select Main Class ' 對話(huà)框中選擇主函數類(lèi) ,

該步驟配置完之后的對話(huà)框如下 , 點(diǎn)擊 ' Next ' 按鈕 , 繼續配置 ,

' 6. JRE ' 選項中設置最低 JDK 版本 1.8 , 在 ' Allow JREs with a beta version number ' 前勾選上 ,
這里特別注意 , IntelliJ IDEA 使用的是 1.8 版本編譯的 jar 包 , 這里必須設置最低版本 1.8 ;

在 ' Search sequence ' 中的 JRE 查找路徑 , 全部刪除 , 如果其它電腦的環(huán)境變量 , 配置路徑不一樣 , 會(huì )出錯 ,

點(diǎn)擊 ' + ' 按鈕 , 添加 jre 目錄 , 注意要使用相對目錄 ,

設置完 jre 之后 , 點(diǎn)擊 ' Next ' , 繼續設置 ,

' Perferred VM ' 中選擇第 2 2 2 項 , ' Client hostpot VM ' , 然后點(diǎn)擊 ' Next ' 繼續 ,

' Next ' 繼續 ,


選擇 ' Click Here to Start the Application ' , 即可啟動(dòng)應用 ;

啟動(dòng)時(shí)會(huì )彈出 , 點(diǎn)擊確定 ;

執行完畢 , 成功打印出 ' Hello World '

一定要注意 jre 版本 , IntelliJ IDEA 使用的 1.8 版本編譯的 jar 文件 , 在 exe4j 中必須設置 1.8 作為最低版本 , 在工作目錄拷貝的 jre 也必須是 1.8 版本的 ;
否則會(huì )報如下錯誤 :
java.lang.UnsupportedClassVersionError: Main : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:81)
at com.exe4j.runtime.WinLauncher.main(WinLauncher.java:94)
A:\Program Files\exe4j\bin>
博客資源地址 : https://download.csdn.net/download/han1202012/16781095
資源內容 :
聯(lián)系客服