java程序如何生成Jar、exe及安裝文件
首先,看一下我的項目的目錄結構:

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

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

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

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

(5),可能會出現警告JAR export finished with warings, see details for additional information.選擇OK。
(6)、可能會出現的錯誤
如果以上過程都能勝利完成,恭喜你,這一過程完成了,生成個jar文件成功!但是有時候在第(4)后會出現錯誤,如:

此時,課通過以下方法解決:
1)檢查項目下的bin文件夾下的文件是否完整,打成jar包的過程實質上是將項目下bin文件夾下的文件(class文件,圖片,jar包等文件)壓縮成jar包。打開項目的目錄結構你會發現:在src文件夾下有的文件在bin文件夾下都一個一樣的副本(.java文件對應的是.class文件)。2)、刷新項目,選擇要打包的項目,右擊鼠標,選擇refresh。作用是可能更改了的內容沒有及時復制到bin文件夾下。3)、在項目的目錄下,和src同級建一個META-INF文件夾,里面建立一個METAINF.MF,里面指定main-class以及程序運行相關的代碼,我寫的代碼是:
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,如下圖:
二、使用exe4j生可執行的.exe文件
能夠生成.exe文件的軟件有很多,自己去查一下,我這里只用 exe4j,先去下載一個exe4j并安裝。假設你的項目已經勝利打包成jar文件,那么就可以進行下面的操作了。
首先,在任意目錄創建一個文件夾,最好命名和項目名相同,我在E盤創建了一個“DataStructure”文件夾,之后將所有的資源文件以及我們生成的可執行jar文件(我的DataStructure.jar)都拷貝到這個文件夾里, lib目錄,如果你要使對方計算機在沒有安裝JDK的情況下也能使用該程序,就需要將自己機器上的jre目錄也拷貝進來,我安裝的jre6,最后的目錄結構如下:
1、如果你有保存過的項目打包配置文件,那么點>>open打開點擊next。
2 、Project type-選擇打包方式
選擇“jar in exe”
3、 application info-配置生成的應用程序的信息
選擇你的應用程序的名稱和將要生成的可執行文件的輸出文件夾。然后>>next.
4、Executable info -配置可執行文件的參數
如果只允許生成的exe文件同時只能打開一個程序運行,則把 “Allow only a single running instance of the application”這項的選擇鉤上。“Icon File”項表示生成exe文件后的圖標,選擇一個“.ico”格式的圖片。點擊next
5、java invocation-配置運行環境
在class path框下清除原有的class path路徑,點擊右側的”+”選擇打包好的jar文件
(1)、在Archive中選擇要導入的jar文件,如下圖:
點擊“OK”,結果如下:
(2)、在Main class中選擇入口類,即含有main函數的類。
之后點擊next
Main Class設置完成后,依次將所有需要的第三方類(即外部類)加到Class Path下,方法同添加“DataStructure.jar”一樣,點擊“Next”
6、jre-配置jre【以下(1)、(2)點很重要】
在Minimum和Maximum中分別填寫所允許的最小和最大JDK的版本號。
如果要在這個程序中捆綁jre,則進入Configure search sequence選項:
(1)、將Search Windows registry保留,如果沒有該項,請點擊綠色“+”,選擇“search registry”,然后點擊“OK”如下圖;
(2)再把其它的所有的directory刪除,特別是如果有“JAVA_HOME”或“JDK_HOME”的話一定要刪除,因為他會保存你本機的JAVA_HOME地址,安裝時會出現路徑找不到的錯誤;
(3)、點擊綠色“+”來選擇捆綁的JRE位置
選擇剛剛拷貝好的jre如:
在preferred VM中選擇一種-選擇虛擬機類型,我選擇的是 Default VM。
7、接下來沒有什么特別重要的配置了,可根據需要自己去選一些參數,也可以直接next,next,知道完成。
8、可能出現的問題
生成exe文件之后可能每次打開都會出現提示框:this executable was created with an evaluation version of exe4j
這是因為你還沒有注冊exe4j軟件,注冊之后就不會有提示了。網上搜的一個注冊碼:L-g782dn2d-1f1yqxx1rv1sqd。
三、將自己編寫的程序制作成能在Windows下安裝的軟件
首先,自己去下一個Inno setup,安裝很簡單,就不用說了,直接根據提示安裝。下載鏈接:http://www.crsky.com/soft/7195.html#down
Inno Setup是一個免費的 Windows安裝程序制作軟件,我用的是Inno Setup v5.4.3。
方法一:
1、編輯腳本程序
我的腳本程序如下:
[Setup]AppName=數據結構演示程序AppVersion=1.5DefaultDirName={pf}/DataStuctureDefaultGroupName=DataStucture;UninstallDisplayIcon={app}/MyProg.exeOutputDir=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捷方式的命令行文件名,通常用一個目錄常量開頭。
2、編譯
編輯好腳本程序之后選擇“構建”/“編譯”完成后即可。
方法二:
選擇”文件”/”新建”,打開”Inno Setup腳本向導”創建新的腳本文件。
![]()
根據提示一步一步來,這個很單間,我就不多說了。
到此,自己寫的程序及完全包裝好了,宛如一個完整的軟件。“哎,自己簡直就是一個軟件工程師啊!:-D :-D”哈哈……開個玩笑!
歡迎加入”Java夢之隊” 學習群:226159645
新聞熱點
疑難解答