java代碼打包成jar以及轉換爲exe

教你如何把java代碼打包成jar文件以及轉換爲exe可執行文件java

 

一、背景:

 

    學習java時,教材中關於如題問題,只有一小節說明,並且要本身寫麻煩的配置文件,最終結果卻只能轉換爲jar文件。實在是心有不爽。此篇博客教你如何方便快捷地把java代碼,打包成jar文件以及轉換爲exe可執行文件吐舌頭windows

 

二、前言:

 

    咱們都知道Java能夠將二進制程序打包成可執行jar文件,雙擊這個jar和雙擊exe效果是同樣同樣的,但感受仍是不一樣。其實將java程序打包成exe也須要這個可執行jar文件。eclipse

 

三、準備:

 

     下載eclipseMyeclipse以及exe4j下載(這裏有幾種版本的exe4j提供下載,總有一款適合你,若是沒有就找度娘咯)。函數

 

 

四、具體步驟:

 

Step1:將java項目打包成可執行jar文件

 

    首先看一下個人java project結構,Main.java是程序入口類,裏面有main函數,config目錄是些配置文件,lib是用到的第三方類庫工具

 

 

開始打包,Simulate(Java項目)-鼠標右鍵-Export學習

 

 

彈出窗口,選擇「JAR file」,點擊「Next」優化

 

 

取消勾選「config」和「lib」目錄,以及eclipse生成的項目配置文件「.classpath」和「.project」,點擊「Next」ui

 

 

一切默認,點擊「Next」spa

 

 

在彈出窗口中,選擇咱們本身建立的MANIFEST.MF文件,點擊「Finish」3d

 

 

 

個人MANIFEST.MF文件內容爲:

 

Manifest-Version: 1.0 Main-Class: bing.Main Class-Path: . lib/ojdbc14.jar lib/poi-2.5.1.jar lib/jbcl.jar lib/JTattoo.jar lib/liquidlnf.jar Created-By: Kun Sun

 

經過指定「Main-Class」來達到可執行jar文件的目的。其實咱們最終是將項目打包成exe,Class-Path能夠不指定,在打包exe的時候還要指定classpath的。

 

Step2:將項目打包成exe

 

    這裏要明確一點,並非把全部的文件都打包成一個exe,資源文件是不能包進去的,往下看↓

首先,在任意目錄建立一個文件夾,最好命名和項目名相同,我在F盤建立了一個「Simulate」文件夾,以後將全部的資源文件以及咱們生成的可執行jar文件(個人Simulate.jar)都拷貝到這個文件夾裏,config目錄和lib目錄,若是你怕執行該程序的機器上沒安裝jre,那麼你須要將本身機器上的jre目錄也拷貝進來,我安裝的jre5,最後的目錄結構:

 

 

打開exe4j,跳過歡迎,直接點擊左側導航的第二項,由於咱們已經提早將java項目打包成可執行jar文件了

 

 

在彈出窗口,選擇「JAR in EXE mode」,點擊「Next」

 

 

在新窗口中,爲咱們的應用取個名稱,以後選擇exe生成目錄(個人F:\Simulate),點擊「Next」

 

 

爲咱們要生成的exe取名,若是想生成自定義圖標,那麼選擇你的ico文件,若是你不想在一臺電腦上運行多個你的程序,你能夠勾選「Allow only a single...」,點擊「Next」

 

 

點擊綠色「+」,設置程序運行的Class Path

 

 

先選擇咱們本身的可執行jar文件(個人Simulate.jar),點擊OK

 

 

咱們的Simulate.jar就加到Class Path下了

 

 

以後點擊General中的Main Class選擇按鈕,在彈出窗口中,exe4j會自動搜索當前Class Path下的所有jar中包含main方法的類,並列出,由於當前我只選擇了本身項目的jar,而個人項目中只有Main.jar包含了main方法,因此一目瞭然,直接選擇它點擊「OK」,程序入口類就設置完成了

 

 

Main Class設置完成後,依次將全部須要的第三方類庫加到Class Path下,方法同添加「Simulate.jar」同樣,點擊「Next」

 

 

輸入Java最小Jre版本號,即低於這個版本的Jre沒法運行該程序,接着點擊「Advanced Options」-「Search sequence」,設置一下咱們的JRE,以前說過,若是客戶機上沒裝Jre咋辦?,不要緊咱們捆綁一個進去

 

 

點擊綠色「+」來選擇捆綁的JRE位置

 

 

在彈出對話框中選擇「Directiony」,以後選擇JRE的文件夾,注意:這個JRE目錄是咱們將本機的JRE目錄拷貝到當前exe生成目錄下的,個人目錄是F:\Simulate\jre5,下圖程序使用的是相對目錄,點擊OK,完成JRE的捆綁操做

 

 

JRE捆綁完畢,點擊「Next」

 

 

默認,點擊「Next」

 

 

默認,點擊「Next」

 

 

默認,點擊「Next」

 

 

exe生成中

 

 

OK,完成,點擊「Exit」便可

 

 

看當作果如何吧!

 

 

    咱們的可執行jar以及第三方jar總共還不到5M,可jre5目錄就50多M,若是目標機器上有JRE環境就能夠把它刪掉了,lib目錄是第三方jar文件,現已打包到exe中了,因此它也沒有存在的理由了,那麼最小配置就剩下了「Simulate.exe」和「config」目錄了!

 

 五、備註

 

    上述步驟基本上是本身已經嘗試過的步驟,其中有些步驟能夠省略,好比說Step1中從java代碼轉換爲jar的過程當中能夠不寫配置文件(MANIFEST.MF文件),系統會自動給出,是否是很方便,大笑。再好比Step2中的綁定jre,能夠不綁定。至於其他能夠更優化及方便地步驟,讀者能夠本身摸索嘗試。大笑

 

 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------哥哥是分割線---------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 

 

這裏轉載網友的一篇exe4j的使用:

 

exe4j是一款很經典的將Java類文件打包成.exe文件的軟件,支持把jar class文件等編譯成windows下可以直接運行的exe文件,還能夠添加啓動等待畫面

第一次安裝時會出現下面的對話框:


它要求系統有1.5版本以上的JDK,點Download在線下載,若是你的機器上有JDK,點Locate找到你機器上已安裝的JDK目錄下/bin/java.exe就能夠進行安裝了。
下面就安裝過程詳細說明一下:
第1步,默認便可。
第2步,若是已經有製做好的jar文件,則下面一個"JAR in EXE"。
對於打包jar文件,在eclipse中右擊項目選導出便可,不會製做jar文件能夠給我留言


第3步,上面是項目名稱,可隨便填寫,下面一個寫出你想要將打包後的exe文件輸出的目錄:


第4步,因爲個人演示程序是圖形的,因此選第一個,若是你的程序是控制檯的,則選擇第二個,Executable name寫你將要生成的exe文件的名字,Icon File能夠選擇生成文件的圖標


第5步,首先,單擊綠色的"+"號,在彈出的窗口中點Archive,而後找到起初已經作好的jar文件,"OK"後返回,在下面的Class Path裏就出現jar文件路徑後,再在上面Main Class欄內點擊找到main所在的類,這一步即算完成:


第6步,你係統的JRE版本,上面填個1.3,下面填1.6:


固然,這樣配置的程序只能在安裝有JRE的機器上執行,發佈時總要考慮的問題就是用戶是否有能力在本身機器上安裝JRE,總不能發佈一個程序還要用戶本身安裝個JRE吧,下面我就介紹如何將JDK環境變量動態打包到exe中,在這裏單擊advanced options,選擇search sequence。如圖:


首先把JRE複製到exe文件輸出的目錄裏,我用的是c:\xaocker\,在彈出的窗口中,刪除列表中全部項,而後單擊綠+,選擇directory並選擇JRE的根目錄(注意是拷貝後的目錄)便可,如圖:


單擊ok後,再從圖中單擊advanced options,並選擇preferred VM,在彈出的窗口中選擇client hostspot VM,單擊next按鈕繼續:


第七、8步是一些基本配置,默認便可,第9步編譯,第10步你就能夠點這個看到效果了:


exe4j未註冊的版本會出現下面的對話框:(內有註冊碼 可無償使用)

點擊肯定以後就能夠看到你程序的運行結果了!java.exe依照一套邏輯來尋找能夠用的JRE,首先查找本身所在的目錄下有沒有JRE,其次查找本身的父目錄下有沒有JRE;最後纔是查詢Windows的註冊表。如今咱們的程序能夠在任意的計算機上執行了,但是缺點是致命的,比方說個人程序才160K,但是不論走到哪裏都要揹着70多M的JRE,未免有點小題大作吧,其實做爲咱們的私有的JRE,好多內容都是能夠拋棄的。Jre目錄下的license均可以不要,bin下的執行文件只須要保留java.exe或者javaw.exe,lib下只要保留rt,jsse,jce,charsets幾個庫就能夠了。除了i386和zi兩個子目錄外,其他的子目錄均可以不要。Zi下只須要保留本身地區的子目錄和其下的一些文件就能夠。Lib下除了庫以外的屬性文件等等都要保留。這樣清理一番,JRE仍然有接近50MB。還能夠繼續清理幾個庫文件裏面不須要的內容,這須要仔細的整理,會很費功夫。最好能寫出一個自動工具幫助咱們整理它們。從Sun公司上下到的JMF裏面附帶的用Java寫的媒體播放器就自帶了JRE,只有幾個MB。清理事後須要運行幾遍咱們的應用程序,以確保咱們的JRE不缺乏東西。OK,仔細清理以後,文件變小了很多,能夠發佈了……

相關文章
相關標籤/搜索