exe4j可用於將jar包製做成Windows可執行程序,安裝方法可參見我以前的一篇Blog:java
http://my.oschina.net/Tsybius2014/blog/725380windows
本文內容包括了製做jar包並使用exe4j工具將其製做成Windows可執行程序的詳細步驟。bash
我使用的操做系統爲Win7旗艦版,JDK版本爲1.8服務器
創建一個Java工程,代碼以下:app
/** * 計算整數加法 * @author Tsybius2014 * @date 2016年8月2日 * @time 下午2:35:16 * @remark */ public class CalcAdd { public static void main(String[] args) { if (args.length < 2) { System.out.println("程序須要至少兩個數字做爲入參"); return; } try { Long num1 = Long.valueOf(args[0]); Long num2 = Long.valueOf(args[1]); System.out.println(num1 + "+" + num2 + "=" + (num1 + num2)); } catch (Exception ex) { System.out.println(ex.getMessage()); } } }
將此工程導出爲「Runnable JAR File」,便可生成一個jar包,使用命令工具
java -jar CalcAdd.jar 參數1 參數2
便可使用CalcAdd.jar計算參數1與參數2的和,以下圖所示:動畫
下面開始介紹如何使用exe4j工具製做Windows可執行程序。exe4j工具使用一個嚮導引導用戶完成exe文件的建立。spa
一、點擊Open按鈕可加載擴展名爲exe4j的配置文件(*.exe4j)操作系統
二、exe4j自動記憶最近使用過的10個配置,點擊Reopen按鈕能夠加載這些配置.net
一、項目類型分爲常規模式(regular mode)和JARinEXE模式(JAR in EXE mode)
二、常規模式下exe4j是一個純粹的啓動器,依賴於全部的JAR文件和資源文件,換句話說,exe4j是你發佈程序的一個插件,而不是替代品
三、JARinEXE模式下,exe4j包含了JAR文件制定的class路徑配置,此模式下生成的可執行文件能夠獨立運行
在應用程序信息界面,可設置將exe文件生成到哪一個目錄下
一、支持設置執行方式(Executable type),包括GUI程序、命令行應用程序、服務三類,這裏根據我要打的jar包實際狀況,選擇了命令行應用程序選項
二、支持設置可執行文件名稱(Executable name)
三、支持設定程序圖標(Icon file)
四、支持設定程序是否只容許執行一個實例(Allow only a single running ...)
本界面還支持一些高級設置(Advanced Options):
一、重定向(Redirection),包括基本輸出(stdout)和基本錯誤輸出(stderr)到的日誌文件設置
二、服務相關設置(Service option),本次打包過程無需設置此項
三、版本信息(Version info),支持設置產品版本(Product version)和文件版本(File version),及其餘一些文件描述信息
四、32-64位系統支持(32-bit or 64-bit),可選擇是否生成64位系統使用的可執行程序
五、其餘相關設置(Manifest options),設置WindowsVista或更高版本Windows系統中程序的執行等級,是否對DPI等內容。
一、在ClassPath中設定要打包的jar文件
二、在MainClass中設定包含Main方法的類
若是你的應用程序使用到了一些本地庫,可在本地庫(Native libraries)列表中列出本地庫的路徑
一、本步驟可設置打包後程序允許的最高/最低JRE版本
二、本步驟可設置打包後程序是否可在beta版JRE上運行
三、本步驟可設置打包後程序是否只容許JDK而不容許JRE
在尋找隊列(Search sequence)中可設置尋找JRE或JDK的步驟,默認的尋找步驟是:
一、Windows系統註冊表
二、環境變量JAVA_HOME
三、環境變量JDK_HOME
在VM偏好設置(Preferred VM)中可設置運行本應用程序的JVM,包含默認(Default)、客戶端熱點(Client hotspot)、服務器熱點(Server hotspot)三類
第七步:啓動畫面(Splash screen)
本界面可配置應用程序是否有啓動畫面,若是有還可進一步配置相關的一些內容,以下圖所示的TextLines
第八步:語言包(Messages)
語言默認包含英(en)、法(fr)、德(de)三個,不過也能夠本身修改觸發各種異常時的提示信息。
本步驟是一個讀條界面,執行完畢後會自動跳轉到嚮導第十步
一、此時exe程序就正式生成了,該程序可在輸出路徑找到
二、點擊「Click Here to Start the Application」可直接執行生成好的可執行程序
三、本界面可將配置保存到擴展名爲exe4j的文件中,實際上這是一個XML格式的配置文件,根據以前的嚮導設置生成的exe4j文件內容以下:
<?xml version="1.0" encoding="UTF-8"?> <exe4j version="5.1" transformSequenceNumber="2"> <directoryPresets config="C:/Users/Tsybius/Desktop" /> <application name="CalcAdd" distributionSourceDir="C:/Users/Tsybius/Desktop"> <languages> <principalLanguage id="en" customLocalizationFile="" /> </languages> </application> <executable name="CalcAdd" type="2" iconSet="false" iconFile="" executableDir="" redirectStderr="false" stderrFile="error.log" stderrMode="overwrite" redirectStdout="false" stdoutFile="output.log" stdoutMode="overwrite" failOnStderrOutput="true" executableMode="2" changeWorkingDirectory="true" workingDirectory="." singleInstance="false" serviceStartType="2" serviceDependencies="" serviceDescription="" jreLocation="" executionLevel="asInvoker" checkConsoleParameter="false" globalSingleInstance="false" singleInstanceActivate="true" dpiAware="false" amd64="false"> <messageSet /> <versionInfo include="false" fileVersion="" fileDescription="" legalCopyright="" internalName="" productName="" companyName="" productVersion="" /> </executable> <splashScreen show="false" width="0" height="0" bitmapFile="" windowsNative="false" textOverlay="false"> <text> <statusLine x="20" y="20" text="" fontSize="8" fontColor="0,0,0" bold="false" /> <versionLine x="20" y="40" text="version %VERSION%" fontSize="8" fontColor="0,0,0" bold="false" /> </text> </splashScreen> <java mainClass="CalcAdd" vmParameters="" arguments="" allowVMPassthroughParameters="true" preferredVM="" bundleRuntime="true" minVersion="1.8" maxVersion="1.8" allowBetaVM="false" jdkOnly="false"> <searchSequence> <registry /> <envVar name="JAVA_HOME" /> <envVar name="JDK_HOME" /> </searchSequence> <classPath> <archive location="C:/Users/Tsybius/Desktop/CalcAdd.jar" failOnError="false" /> </classPath> <nativeLibraryDirectories /> <vmOptions /> </java> <includedFiles /> <unextractableFiles /> </exe4j>
製做好的可執行文件名爲CalcAdd.exe,文件被生成到了桌面上,以下圖所示:
如今再打開cmd,輸入命令
CalcAdd.exe 123 456
能夠發現與以前java命令執行的結果是一致的:
(若是咱們使用的是評估版exe4j工具,exe文件執行時會彈出相應的提示信息)
END