天天看點

Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體

http://blog.csdn.net/luoweifu/article/details/7628006/

首先,看一下我的項目的目錄結構:

Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體

1,項目名字上面點右鍵,選擇Export,在選擇java\JAR file,下一步;如下圖:

Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體

(2),選擇,src檔案夾,.classpath和.project可以去掉不選。Select the export distination(選擇輸出路徑),下一步。

Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體

(3),去掉Export class files withcompile errors(編譯錯誤時也輸出class檔案)的選項,單擊下一步。

Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體

(4),在main class中選擇含有main方法的類,單擊finish。

Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體

(5),可能會出現警告JAR export finished with warings, see details for additional information.選擇OK。

(6)、可能會出現的錯誤

如果以上過程都能勝利完成,恭喜你,這一過程完成了,生成個jar檔案成功!但是有時候在第(4)後會出現錯誤,如:

Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體

此時,課通過以下方法解決:

我寫的代碼是:

Manifest-Version: 1.0

Main-Class: execute.Structure

Class-Path: .lib/jfreechart-1.0.1.jar lib/liquidlnf.jar lib/nimrodlf-1.0b.jar lib/substance.jar

//導入的包的路徑

Created-By: loweifu

在第4步中選擇Use exiting manifest from workspace,如下圖:

Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體

能夠生成.exe檔案的軟體有很多,自己去查一下,我這裡隻用 exe4j,先去下載下傳一個exe4j并安裝。假設你的項目已經勝利打包成jar檔案,那麼就可以進行下面的操作了。

首先,在任意目錄建立一個檔案夾,最好命名和項目名相同,我在E盤建立了一個“DataStructure”檔案夾,之後将所有的資源檔案以及我們生成的可執行jar檔案(我的DataStructure.jar)都拷貝到這個檔案夾裡, lib目錄,如果你要使對方計算機在沒有安裝JDK的情況下也能使用該程式,就需要将自己機器上的jre目錄也拷貝進來,我安裝的jre6,最後的目錄結構如下:

Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體
Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體

選擇“jar in exe”

Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體

選擇你的應用程式的名稱和将要生成的可執行檔案的輸出檔案夾。然後>>next.

Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體
Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體

如果隻允許生成的exe檔案同時隻能打開一個程式運作,則把 “Allow only a single running instance of the application”這項的選擇鈎上。“Icon File”項表示生成exe檔案後的圖示,選擇一個“.ico”格式的圖檔。點選next

在class path框下清除原有的class path路徑,點選右側的”+”選擇打包好的jar檔案

(1)、在Archive中選擇要導入的jar檔案,如下圖:

Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體

點選“OK”,結果如下:

Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體

(2)、在Main class中選擇入口類,即含有main函數的類。

Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體

之後點選next

Main Class設定完成後,依次将所有需要的第三方類(即外部類)加到Class Path下,方法同添加“DataStructure.jar”一樣,點選“Next”

Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體

在Minimum和Maximum中分别填寫所允許的最小和最大JDK的版本号。

如果要在這個程式中捆綁jre,則進入Configure search sequence選項:

(1)、将Search Windows registry保留,如果沒有該項,請點選綠色“+”,選擇“search registry”,然後點選“OK”如下圖;

Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體

(2)再把其它的所有的directory删除,特别是如果有“JAVA_HOME”或“JDK_HOME”的話一定要删除,因為他會儲存你本機的JAVA_HOME位址,安裝時會出現路徑找不到的錯誤;

(3)、點選綠色“+”來選擇捆綁的JRE位置

選擇剛剛拷貝好的jre如:

Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體

在preferred VM中選擇一種-選擇虛拟機類型,我選擇的是 Default VM。

Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體

7、接下來沒有什麼特别重要的配置了,可根據需要自己去選一些參數,也可以直接next,next,知道完成。

生成exe檔案之後可能每次打開都會出現提示框:this executable was created with an evaluation version of exe4j

這是因為你還沒有注冊exe4j軟體,注冊之後就不會有提示了。網上搜的一個注冊碼:L-g782dn2d-1f1yqxx1rv1sqd。

Inno Setup是一個免費的 Windows安裝程式制作軟體,我用的是Inno Setup v5.4.3。

我的腳本程式如下:

[Setup]

AppName=資料結構示範程式

AppVersion=1.5

DefaultDirName={pf}\DataStucture

DefaultGroupName=DataStucture

;UninstallDisplayIcon={app}\MyProg.exe

OutputDir=D:\java

[Files]

Source: "E:\DataStructure\jre\*"; DestDir: "{app}\jre"

Source: "E:\DataStructure\jre\bin\*"; DestDir: "{app}\jre\bin"

Source: "E:\DataStructure\jre\bin\client\*"; DestDir: "{app}\jre\bin\client"

Source: "E:\DataStructure\jre\lib\*"; DestDir: "{app}\jre\lib"

Source: "E:\DataStructure\jre\lib\audio\*"; DestDir: "{app}\jre\lib\audio"

Source: "E:\DataStructure\jre\lib\cmm\*"; DestDir: "{app}\jre\lib\cmm"

Source: "E:\DataStructure\jre\lib\deploy\*"; DestDir: "{app}\jre\lib\deploy"

Source: "E:\DataStructure\jre\lib\ext\*"; DestDir: "{app}\jre\lib\ext"

Source: "E:\DataStructure\jre\lib\fonts\*"; DestDir: "{app}\jre\lib\fonts"

Source: "E:\DataStructure\jre\lib\i386\*"; DestDir: "{app}\jre\lib\i386"

Source: "E:\DataStructure\jre\lib\im\*"; DestDir: "{app}\jre\lib\im"

Source: "E:\DataStructure\jre\lib\images\cursors\*"; DestDir: "{app}\jre\lib\images\cursors" 

Source: "E:\DataStructure\jre\lib\management\*"; DestDir: "{app}\jre\lib\management"

Source: "E:\DataStructure\jre\lib\security\*"; DestDir: "{app}\jre\lib\security"

Source: "E:\DataStructure\jre\lib\zi\*"; DestDir: "{app}\jre\lib\zi"

Source: "E:\DataStructure\jre\lib\zi\Africa\*"; DestDir: "{app}\jre\lib\zi\Africa"

Source: "E:\DataStructure\lib\*"; DestDir: "{app}\lib"

Source: "E:\DataStructure\DataStructure.exe"; DestDir: "{app}";

[Icons]

Name: "{group}\DataStructure"; Filename: "{app}\DataStructure.exe"

接下來稍微解釋一下:

 [Setup這個段包含用于安裝程式和解除安裝程式的全局設定。

AppName(要安裝的)程式名稱

AppVersion程式版本号

DefaultDirName安裝時預設的檔案夾

DefaultGroupName快捷菜單或開始菜單的預設檔案夾

OutputDir安裝程式的輸出路徑

[Files]這是定義安裝程式安裝檔案到使用者系統中的可選檔案段。

Source資源檔案

DestDir檔案安裝到使用者系統中的目錄。

[Icons]這個可選段定義所有建立在開始菜單和/或其它位置 (比如桌面)的快捷方式。

Name要建立的快捷方式的名字和位置。

Filename捷方式的指令行檔案名,通常用一個目錄常量開頭。

編輯好腳本程式之後選擇“建構”\“編譯”完成後即可。

選擇"檔案"/"建立",打開''Inno Setup腳本向導"建立新的腳本檔案。

Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體
Java程式如何生成Jar、exe及安裝檔案 一、用Eclipse生産Jar檔案 二、使用exe4j生可執行的.exe檔案 三、将自己編寫的程式制作成能在Windows下安裝的軟體

根據提示一步一步來,這個很單間,我就不多說了。

到此,自己寫的程式及完全包裝好了,宛如一個完整的軟體。“哎,自己簡直就是一個軟體工程師啊!:-D :-D”哈哈……開個玩笑!

繼續閱讀