EclipseSWT應(yīng)用程序項目的打包與部署_第1頁
EclipseSWT應(yīng)用程序項目的打包與部署_第2頁
EclipseSWT應(yīng)用程序項目的打包與部署_第3頁
EclipseSWT應(yīng)用程序項目的打包與部署_第4頁
EclipseSWT應(yīng)用程序項目的打包與部署_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Eclipse SWT 應(yīng)用程序項目的打包與部署Eclipse SWT 應(yīng)用程序項目的打包與部署 當(dāng)項目完成后接下來的就是打包發(fā)行了,應(yīng)用程序 ( Application )項目和 Eclipse 插件項目( plugin )的打包是 不同的,本章將分別介紹兩者的打包方法,并給出實際的打 包例子。7.1 應(yīng)用程序項目的打包與發(fā)行7.1.1 簡介Java 應(yīng)用程序項目完成后是可以脫離 Eclipse 運行 的,要運行程序先要打它打成一個 JAR 包,它打包的大部份 方法和標(biāo)準(zhǔn) Java 的 AWT/SWING 的打包方法一樣,主要有 以下幾個要點l MANIFEST.MF 打包清單。它是打包的關(guān)

2、 鍵性文件,主要是設(shè)置執(zhí)行入口類和支持庫的路徑,在運行 Java 應(yīng)用程序時是要根據(jù)此文件中給出的信息來查找入口 類和支持庫。l 支持包 如果 Java 應(yīng)用程序用到了一些 Eclipse 包,那么就必須將這些包也復(fù)制到程序運行目錄, 否則程序?qū)o法運行。如 swt 組件支持包 swt.jar , jface 組 件支持包 jface.jar 。這些包都要在 MANIFEST.MF 文件中設(shè) 置好。l 本地化文件 如果用到了 SWT 組件,則還需 要將 SWT 的本地化文件 swt-win32-3063.dll ( 3063 是版本 號)復(fù)制到程序運行目錄,否則程序?qū)o法運行。7.1.2 打包

3、的具體操作步驟本節(jié)將用前幾章開發(fā)的 SWT/JFace 項目 myswt 的打包為 例,來介紹打包應(yīng)用程序項目的方法。1、編輯清單 MANIFEST.MF( 1 ) Eclipse 提供了用于打包項目的 導(dǎo)出 向?qū)?,但本例運 行此向?qū)е跋刃枰獎?chuàng)建一個 MANIFEST.MF 清單文件, 其 內(nèi)容如下:Manifest-Version: 1.0Class-Path: ./lib/swt.jar ./lib/jface.jar ./lib/runtime.jar說明:lManifest-Version 指定清單文件的版本號lMain-Class 指定程序運行的入口類。本例設(shè)為運行 節(jié)開發(fā)的向?qū)?/p>

4、對話框。注意:類名后不要 加 class 擴展名l Class-Path 指定支持庫的路徑。 . 指程序 運行目錄,即導(dǎo)出的 JAR 包所在目錄。程序運行時依據(jù) Class-Path 項的設(shè)置路徑來查找支持庫。 每一個支持庫之間用空格隔開。 在這里 jface.jar 需要用到 runtime.jar 包, 所以runtime.jar 包也要加入到 Class-Path 中。l 除了入口類的包名和類名之外,其他設(shè)置項都 不分大小寫,比如: Class-Path 寫成 class-path 或 CLASS-PATH 也可以, swt.jar 寫成 SWT.JAR 也行。(2 )將清單文件保存下來

5、,建議放在myswt 項目的根目錄下。它的文件名可以任意取, 本例取名為 manifes.txt ,Eclipse 向?qū)г诖虬鼤r會自動的將 manifes.txt 的內(nèi)容復(fù)制到 JAR 包 的 META-INF 目錄下的 MANIFEST.MF 文件中。2、使用 Eclipse 導(dǎo)出 向?qū)泶虬椖浚? )右鍵單擊 myswt 項目的項目名,在彈出菜單中選擇 導(dǎo)出 。在彈出的如下圖 7.1 所示的對話框中,選擇 JAR 文 件,單擊 下一步 。圖 7.1 導(dǎo)出對話框(2)如下圖 7.2 所示, 將右邊不需要的文件都取消勾選。 在 選擇導(dǎo)出目標(biāo) 項文本框中設(shè)置 JAR 包的輸出路徑和包名 (可以

6、任意取名)為 D:myswt_applicationmyswt.jar 。接 受其他的默認(rèn)設(shè)置不變,單擊 下一步 。附注:左邊雖然選擇了 src 目錄,但源文件并不會導(dǎo)出到包 中,除非勾選了 導(dǎo)出 Java 源代碼文件和資源 項。圖 7.2 選擇導(dǎo)入文件( 3)如下圖 7.3 所示,接受默認(rèn)設(shè)置不變,單擊 下一步 。圖 7.3 導(dǎo)出類的選項(4 )這一步較關(guān)鍵。如下圖 7.4 所示,選擇 從工作空間中 使用現(xiàn)有清單 項,將創(chuàng)建的清單文件輸入, 也可以通過旁邊 的瀏覽 按鈕來選擇清單文件。輸入清單文件后,單擊完成, Eclipse 開始將項目打包。圖 7.4 清單文件設(shè)置經(jīng)過以上四步后,在 D:

7、myswt_application 路徑下 生成了一個名為 myswt.jar 的文件。 myswt.jar 是一個 ZIP 格式的壓縮文件,可以用 WinRAR 或 WinZip 軟件打開,也 就是說用這兩個軟件也可以替代 Eclipse 向?qū)泶虬募?如果用 WinRAR 來打包文件, 則壓縮格式要選擇 ZIP 格式而 非 RAR 格式,壓縮率倒可以任意選。用 WinRAR 打開 myswt.jar 文件后其內(nèi)部的目錄結(jié)構(gòu)如下圖 7.5 所示:圖 7.5 myswt.jar 文件的內(nèi)部目錄結(jié)構(gòu)在 myswt.jar 文件的內(nèi)部目錄 META-INF 中僅一個文 件: MANIFEST.

8、MF ,它和以前創(chuàng)建的清單文件 manifest.txt的內(nèi)容是一樣的,如下:Manifest-Version: 1.0Class-Path: ./lib/swt.jar ./lib/jface.jar ./lib/runtime.jar3、復(fù)制 Java 應(yīng)用程序的支持包及本地化文件在 MANIFEST.MF 文件中的 Class-Path 項設(shè)置了三個包, 從 Eclipse 的 plugins 目錄中將此三個支持包復(fù)制到 D:myswt_applicationlib 目錄,本地化文件 swt-win32-3063.dll 復(fù)制到 D:myswt_application 目錄中。此 三個文

9、件在 Eclipse 中的路徑為: 復(fù)制完成后的目錄結(jié)構(gòu)如下圖 7.6 所示:圖 7.6 目錄結(jié)構(gòu)圖4、編寫運行 myswt.jar 包的批處理程序 run.bat在 myswt_application 目錄下創(chuàng)建一個批處理程序 run.bat (名字任取, 擴展名必須是 bat ),其內(nèi)容僅一句語句, 如下: javaw -jar myswt.jar說明:l javaw 對應(yīng) c:jdkjrebinjavaw.exe 文件, 如果 windows 提示命令未發(fā)現(xiàn),則需要將 c:jdkjrebin 路徑加入 到 windows 環(huán)境變量 path 中。l 在運行程序的時候有一個討厭的黑色命令行

10、窗 口,要去掉它,可以將 run.bat 內(nèi)容更改如下: start javaw -jar myswt.jar , start 是指調(diào)用了 windows 的運行 命令。l 如果想將 swt-win32-3063.dll 也放在單獨的目 錄中,如 D:myswt_applicationnative 目錄, 則需將 run.bat 內(nèi)容更改為:5、運行程序雙擊 run.bat 文件,得到如下圖 7.7 所示的程序界面。圖 7.7 程序運行效果圖6、注意事項 本例只需要三個支持包,但你的程序也許會需要更多的支持 包才能運行。如果你想一次到位,則可以將 Java 構(gòu)建路徑 的庫選項卡中所有引用的包都

11、復(fù)制到 lib 目錄中。 如果你喜 歡用到什么包才加入什么包,希望維持打包文件的簡潔,則 需要自己一步步的去試:如果缺少某支持包,運行程序時會 輸出的未找到類的錯誤信息,從信息中的包名可得知程序缺 少哪一個支持包。比如 ,從錯誤信息中很明顯的就 能知道程序缺少 jface 包7.1.3 其他得到 JAR 包的方式要得到 JAR 包除了以上所說的用 Eclipse 導(dǎo)出 向?qū)А?用 WinZip 和 WinRAR ,另外還能用 Java 自帶的命令行式打 包軟件 jar.exe (位于 c:jdkbin 目錄),其打包命令為: .說明:l c:jdkbinjar 由于本書沒有把 c:jdkbin

12、 加 入到 windows 環(huán)境變量 path 中,所以手工指定 jar.exe 的路 徑l cvfm jar.exe 的參數(shù), c 創(chuàng)建新的 jar 包; v將調(diào)試信息打印在屏幕上;f指定生成的jar文件名;m 使用清單文件。注意它們都是小寫lmyswt.jar 打包后的 JAR 包名l在前面是把清單文件 manifest.txt 放在目錄下。如果將它和批處理文件放在一個目錄就不必指定長長的路徑了 l -C 路徑 . 指將路徑下(包括子目錄)的所有 文件打包,由于 class 文件是輸出在項目的 bin 目錄下,所 以路徑指定到項目的 bin 目錄,注意三者之間是用空格隔開, 并且最后一個字

13、符是小數(shù)點。這種方式的優(yōu)點是沒有 Eclipse 導(dǎo)出向?qū)У牟僮髂敲绰闊?適合經(jīng)常需要導(dǎo)出 JAR 包的情況。7.1.4 使用第三方插件對項目打包開源組織( )中有一款可將 Eclipse 支持包和項目編譯文件一起打到一個包中的插件,叫 Fat Jar ,它的下載地址是 ,具體下 載不再說明,安裝步驟參閱第 1 章 SWT Designer 的安裝。 Fat Jar 的使用步驟如下:(1 )右鍵單擊 myswt 項目的項目名,可見菜單中多了一項 Build Fat Jar ,如下圖 7.8 所示,選擇 Build Fat Jar 項。圖 7.8 右鍵菜單(2 )在下圖 7.9 所示的對話框中

14、, Jar-Name 項填入 JAR 包的輸出路徑。文件清單 Manifest 項不用填,默認(rèn)會自動 創(chuàng)建一個。 Main-Class 項填入程序的入口類。其他都接受 默認(rèn)值,單擊 下一步 。圖 7.9 輸出配置( 3)如下圖 7.10 所示,窗口中將 myswt 項目所用 到的支持包都列了出來。 我們僅勾選圖中 runtime.jar 、swt.jar 、 jface.jar 這三項即可,當(dāng)然全選也并嘗不可,只是最后得到 的 JAR 包會更大一些,因為 Fat Jar 會將所有支持包合并在 一個 JAR 包中。圖 7.10 選擇要打包的文件單擊圖 7.10 的完成按鈕后, JAR 包 mys

15、wt.jar 將輸出到 D:myswt_applicationh 目錄中。 和以前一樣, 要運行此 JAR 包需要一個批處理文件以及本地化文件 swt-win32-3063.dll , 唯一不同的是不再需要 Eclipse 支持包,其目錄結(jié)構(gòu)如下圖 7.11 所示:圖 7.11 目錄結(jié)構(gòu)為什么不需要 Eclipse 支持包了呢?那是因為支持 包已經(jīng)在 myswt.jar 文件中了, 從下圖 7.12 可以看到 swt.jar 等都被拆散成目錄,并包含在 myswt.jar 包中。圖 7.12 myswt.jar 的內(nèi)部目錄結(jié)構(gòu)其中 META-INF 目錄的 MANIFEST.MF 文件內(nèi)容如

16、下,可以發(fā)現(xiàn)和以前不同的地方是: Class-Path 項沒有了。Manifest-Version: 1.0Created-By: Fat Jar Eclipse Plug-In7.1.4 讓用戶電腦不必安裝 JRE 環(huán)境通常運行 Java 程序有個前提條件: 用戶電腦必須先 安裝 JRE 環(huán)境。雖然安裝 JRE 環(huán)境非常簡單,但畢竟多了 一步,算是有一點點的瑕疵。這里給出一個不必讓用戶安裝 JRE 環(huán)境的方法,其實現(xiàn)步驟如下:(1) 將原JDK中的jre目錄復(fù)制到目錄下( 也可換 成其他名稱) 。( 2)將 JDK 和 JRE 從本機卸載掉, 這樣表示本機沒有安裝 JAVA 運行環(huán)境。(3)

17、修改批處理文件 run.bat 中的命令為 ,僅僅是在 javaw 前 加上了一個相對應(yīng)路徑。雙擊 run.bat 即可在不安裝 JRE 環(huán)境的電腦運行此 Java 應(yīng) 用程序。7.1.5 更進(jìn)一步的完善1 、拋棄批處理文件( *.bat ) 用批處理文件運行程序似乎不夠?qū)I(yè),雖然它足以完成運行 任務(wù)。但習(xí)慣就象一種毒藥一旦染上就很難擺脫它的影響, Windows 統(tǒng)治下的人們早已經(jīng)習(xí)慣運行擴展名是 EXE 的程 序,用 *.bat 他們就會感覺別扭。我們可以用一個叫 JavaLauncher 的免費小程序來代替批處 理文件去運行 Java 程序。 JavaLauncher 的下載網(wǎng)址是: n

18、er_java_launcher.htm下載下來的文件是一個名 JavaLauncher.zip 的壓縮包, 解壓 后的目錄結(jié)構(gòu)如下圖 7.13 所示:圖 7.13 JavaLauncher.zip 目錄結(jié)構(gòu)在上圖的目錄中l(wèi) source 目錄包含了 JavaLauncher 的源程序, 是用 C 語言寫的lchanges.txt 是新版的修改說明llaunch.exe 是主程序llauncher.cfg 是配置文件lreadme.txt 是一些說明和示例我們只需要 launch.exe 、 launcher.cfg 兩個文件,將這兩個 文件復(fù)制到打包文件所在的目錄。 launcher.cfg

19、 是一個僅三 行內(nèi)容的文本文件,將它修改如下:-jar myswt.jarl 第一行設(shè)置指向 JAR 包 myswt.jar 的目錄,由 于 launch.exe 和 myswt.jar 同在一個目錄,所以用 . 即當(dāng)前 目錄。l 第二行設(shè)置指向 jrebinjavaw.exe 的路徑。在 上一小節(jié)( 節(jié))已將 jre 目錄復(fù)制到了 子目 錄中配置好 launcher.cfg 后,雙擊 launch.exe 即可運行 java 應(yīng) 用程序。如果仔佃研究 eclipse 的啟動方式,發(fā)現(xiàn) eclipse 和 JavaLauncher 的原理一樣: eclipse.exe 相當(dāng)于 launch.e

20、xe , startup.jar 相當(dāng)于 myswt.jar 。只不過 eclipse.exe 不象 launch.exe 要具有通用性, 所以它沒有 *.cfg 這樣的配置文件, 而是將啟動信息固化在 eclipse.exe 中。2、美化圖標(biāo)launch.exe 文件的圖標(biāo)太單調(diào)了, 讓我們給它換個好看點的。 換程序的圖標(biāo)需要用到一個免費的軟件: Resource Hacker , 它有中文版,下載網(wǎng)址是: 用 Resource Hacker 來替換 launch.exe 的圖標(biāo)的步驟如下: (1 )運行 Resource Hacker ,得到如下圖 7.14 所示的窗口。圖 7.14 Resource Hacker 的主界面(2)單擊主菜單文件打開”,將launch.exe載入到程序中,結(jié)果如下圖 7.15 所示。圖 7.15 載入 Lanunch.exe 之后的界面(3)如上圖,選擇左邊的 圖標(biāo) 1 1030 ,然后右鍵單擊 1030 項,選擇 替換資源 .。如

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論