1、創建Java Project
用eclipse創建一個Java Project,並編寫一個帶有main函數的程序。系統的配置文件信息需放在<工程根目錄>/下自建的文件夾下,不要放在src目錄下,便於將一些需要修改的配置文件與最終生成的jar文件分開。
根目錄就是<工程目錄>,也就是說"./"代表<工程目錄>。
2、導出Jar包
步驟如下:
注:launch configuration的下拉框中沒有對應的選項時,可在項目中右鍵主函數(main),選擇run as àjava application運行一下即可。Eclipse自動生成的文件爲MANIFEST.MF內容如下:
Manifest-Version: 1.0
Main-Class: manager.ui.MainFrame
Class-Path: ./lib/spring.jar ./lib/hibernate.jar ./lib/derby.jar
說明:
Manifest-Version - 指定清單文件的版本號
Main-Class -指定程序運行的入口類。注意:類名後不要加class擴展名
Class-Path -指定支持庫的路徑。“.”指程序運行目錄,即導出的JAR包所在目錄。程序運行時依據Class-Path項的設置路徑來查找支持庫。每一個支持庫之間用空格隔開。
注意:
1.如果Java應用程序用到了一些Eclipse包,那麼就必須將這些包也複製到程序運行目錄,設置到Class-Path,否則程序將無法運行,如果eclipse導出爲runnable jar file時,eclipse會自動將系統用到得eclipse包複製到jar裏,但是外部jar需要在class-path中進行設置。
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文件.
3、創建系統程序的運行目錄
文件目錄參考如下:
其中的bakfile爲備份目錄,
jre爲java的運行目錄
lib爲系統用到的外部jar包文件,以及系統導出的webIndex.jar包。
log爲系統運行的日誌文件
注:使用eclipse創建java project時引用的外部jar包即可引用該目錄下lib中的jar包。
4、製作run.bat
生成運行webIndex.jar的批處理文件run.bat(該步可以不要) 。
在webindex目錄下創建一個批處理程序run.bat(名字任取,擴展名必須是bat),其內容僅一句語句,如下:
javaw -jar lib\webIndex.jar
說明:
1.javaw對應c:\jdk\jre\bin\javaw.exe文件,如果windows提示命令未發現,則需要將c:\jdk\jre\bin路徑加入到windows環境變量path中。
2.在運行程序的時候有一個討厭的黑色命令行窗口,要去掉它,可以將run.bat內容更改如下:“start javaw -jar lib\webIndex.jar”,start是指調用了windows的“運行”命令。
3.在後邊加一個pause,即在命令行窗口提示“按任意鍵繼續……”,如:
start javaw -jar lib\webIndex.jar
pause
雙擊run.bat,就可以運行該JAR文件了.
5、讓電腦不必安裝JRE環境,也能運行.
通常運行Java程序有個前提條件:用戶電腦必須先安裝JRE環境。雖然安裝JRE環境非常簡單,但畢竟多了一步,算是有一點點的瑕疵。這裏給出一個不必讓用戶安裝JRE環境的方法,其實現步驟如下:
(1)將原JDK中的“jre”目錄複製到“c\webindex”目錄下,即3、圖中的jre目錄即爲複製過來的目錄。
(2)修改批處理文件run.bat中的命令爲
start jre\bin\javaw -jar lib\webIndex.jar,即在javaw前加上了一個相對應路徑。
雙擊run.bat即可在不安裝JRE環境的電腦運行此Java應用程序。
參考:
http://kuangbaoxu.iteye.com/blog/860243
http://blog.csdn.net/shendl/article/details/1815044
http://www.blogjava.net/ITdavid/archive/2008/01/22/177065.html
http://www.cnblogs.com/glaivelee/archive/2009/10/07/1578737.html