下面介紹過程:
第一步:完成Java GUI程序
在Eclipse下,程序能夠正常運行.
第二步:準備清單文件(MANIFEST.MF)
方法1:直接拷貝其它能運行的JAR文件中的MANIFEST.MF進行修改
方法2:利用IDE工具,如Eclipse在生成JAR文件時自動生成
MANIFEST.MF內容如下:
Main-Class: manager.ui.MainFrame
Class-Path: ./lib/spring.jar ./lib/hibernate.jar ./lib/derby.jar
SplashScreen-Imager: manager/resources/images/splash.jpg
說明:
Manifest-Version - 指定清單文件的版本號
Main-Class -指定程序運行的入口類。注意:類名后不要加class擴展名
Class-Path -指定支持庫的路徑。“.”指程序運行目錄,即導出的JAR包所在目錄。程序運行時依據Class-Path項的設置路徑來查找支持庫。每一個支持庫之間用空格隔開。在這里使用了hibernate,spring,derby.
注意:
1.如果Java應用程序用到了一些Eclipse包,那么就必須將這些包也復制到程序運行目錄,設置到Class-Path,否則程序將無法運行.引用了一些外部組件也需要如此設置,如hibernate,spring,derby.
2. 除了入口類的包名和類名之外,其他設置項都不分大小寫,比如:Class-Path寫成class-path或CLASS-PATH也可以,swt.jar寫成SWT.JAR也行。
3.類名后不要加class擴展名
4.每一行的':'后都有一個空格,如Class-Path:<空格>./lib/spring.jar
5.Class-Path中.引入的JAR文件每行不得超過19個,否則會報錯.但在讓人意外的是每行只有前9個有效,故將所有同類型的JAR 文件做成一個JAR文件.如我這里的spring.jar,hibernate.jar,derby.jar都是同類JAR文件的組合.
第三步:修改spring配置文件
在spring的 'sessionFactory' bean的配置中則要這樣寫(與程序中ClassPathXmlApplicationContext對應)
manager/entity/MyFile.hbm.xml
manager/entity/FileType.hbm.xml
...
第四步:使用Eclipse生成JAR文件
1.右鍵單擊項目名,在彈出菜單中選擇“Export”。在彈出的如下圖所示的對話框中,選擇“JAR文件”,單擊“Next”
2.將右邊不需要的文件都取消勾選。在“選擇導出目標(Select the export destination)”項文本框中設置JAR包的輸出路徑和包名(可以任意取名)為“D:\manager\manager.jar”。接受其他的默 認設置不變,單擊“Next”。
附注:左邊雖然選擇了src目錄,但源文件并不會導出到包中,除非勾選了“導出Java源代碼文件和資源(Export java source files and resources)”項。
3.接受默認設置不變,單擊“Next”
4.這一步較關鍵。如下圖所示,選擇“從工作空間中使用現有清單”項,將創建的清單文件輸入,也可以通過旁邊的“瀏覽”按鈕來選擇清單文件。輸入清單文件后,單擊“Finish”,Eclipse開始將項目打包。
附:這里也可以選擇Generate the manifest file.但生成的清單文件MAINFEST.MF需要修改.
注意:清單文件MAINFEST.MF一定要按第二步那樣設置.
第五步:生成運行manager.jar的批處理文件manager.bat(該步可以不要)
在manager目錄下創建一個批處理程序manager.bat(名字任取,擴展名必須是bat),其內容僅一句語句,如下:
javaw -jar manager.jar
說明:
1.javaw對應c:\jdk\jre\bin\javaw.exe文件,如果windows提示命令未發現,則需要將c:\jdk\jre\bin路徑加入到windows環境變量path中。
2.在運行程序的時候有一個討厭的黑色命令行窗口,要去掉它,可以將run.bat內容更改如下:“start javaw -jar manager.jar”,start是指調用了windows的“運行”命令。
3.在后邊加一個pause就可以讓你看到具體哪里出錯了,如:
pause
雙擊manager.bat,就可以運行該JAR文件了.
第六步:讓電腦不必安裝JRE環境,也能運行.
通常運行Java程序有個前提條件:用戶電腦必須先安裝JRE環境。雖然安裝JRE環境非常簡單,但畢竟多了一步,算是有一點點的瑕疵。這里給出一個不必讓用戶安裝JRE環境的方法,其實現步驟如下:
(1)將原JDK中的“jre”目錄復制到“D:\manager\java”目錄下(java也可換成其他名稱)。
(2)將JDK和JRE從本機卸載掉,這樣表示本機沒有安裝JAVA運行環境。
(3)修改批處理文件manager.bat中的命令為“start java\jre\bin\javaw -jar manager.jar”,僅僅是在javaw前加上了一個相對應路徑。
雙擊manager.bat即可在不安裝JRE環境的電腦運行此Java應用程序。
第七步:拋棄批處理文件(*.bat),生成exe文件
用批處理文件運行程序似乎不夠專業,雖然它足以完成運行任務。但習慣就象一種毒藥一旦染上就很難擺脫它的影響,Windows統治下的人們早已經習慣運行擴展名是EXE的程序,用*.bat他們就會感覺別扭。
我們可以用一個叫JavaLauncher的免費小程序來代替批處理文件去運行Java程序。JavaLauncher的下載網址是:
http://www.rolemaker.dk/nonRoleMaker/javalauncher/marner_java_launcher.htm
下載下來的文件是一個名JavaLauncher.zip的壓縮包,解壓后的目錄結構如下所示:
source 目錄包含了JavaLauncher的源程序,是用C語言寫的
changes.txt 是新版的修改說明
launch.exe 是主程序
launcher.cfg 是配置文件
readme.txt 是一些說明和示例
我們只需要launch.exe、launcher.cfg兩個文件,將這兩個文件復制到打包文件所在的目錄。launcher.cfg是一個僅三行內容的文本文件,將它修改如下:
.\java\jre\bin\javaw.exe
-jar manager.jar
第一行設置指向JAR包managger.jar的目錄,由于launch.exe和myswt.jar同在一個目錄,所以用“.”即當前目錄。
第二行設置指向jre\bin\javaw.exe的路徑。在上面已將jre目錄復制到了java子目錄中
配置好launcher.cfg后,雙擊launch.exe即可運行java應用程序。
如果仔佃研究eclipse的啟動方式,發現eclipse和JavaLauncher的原理一樣:eclipse.exe相當于 launch.exe,startup.jar相當于manager.jar。只不過eclipse.exe不象launch.exe要具有通用性,所以 它沒有*.cfg這樣的配置文件,而是將啟動信息固化在eclipse.exe中。
第八步:美化圖標
launch.exe文件的圖標太單調了,讓我們給它換個好看點的。換程序的圖標需要用到一個免費的軟件:Resource Hacker.
第九步:最后的打包
發送給用戶之前,通常要用WinZip或WinRAR將所有的文件全部打成一個壓縮包,然后用戶得到這個壓縮包后,將其解壓縮后即可運行程序,Eclipse軟件就是這種方式。
另一種方式是用InstallShield、InstallAnyWhere這樣的安裝程序制作軟件來創建一個單一的setup.exe文件, 它具有向導式的安裝界面,而且還可以往windows的程序欄插入菜單項,關于這些安裝程序制作軟件的具體使用請參閱相關書籍。