折磨人的17章Release Your Code: packaging and deployment

ㄚ琪很少對深入淺出系列書籍大寫特寫,但是這一次讀到深入淺出 Java 程式設計 第二版17章這裡,終於有尋獲至寶的感覺,因為在很多Java的書中,討論發佈程式的並不多,而且深入淺出的系列又淺顯易懂,趁ㄚ琪在學會發佈程式之前,一定要好好的大寫特寫一下,作為讀後心得分享最好。

把程式包進JAR

如何建構可執行的JAR?這裡有3個步驟,當然很多廢話都省了,如果想看廢話,請自行買書來看:

Step 1:確定所有的class檔案都在classes目錄下

Step2:建立manifest.txt來描述那個class帶有main()

檔案裡會有這樣一行:

Main-Class : MyApp

MyApp就是編譯出來MyApp.class沒有副檔名的名稱。

Step 3: 執行jar工具來建構帶有所有class以及manifest的JAR檔

%cd MiniProject/classes

%jar -cvmf manifest.txt app1.jar *.class

%jar -cvmf manifest.txt app1.jar MyApp.class

第一種方法如果是有很多class檔案,會很方便,反之,第二種方法只能在有一個class檔案時使用

執行JAR

當然很多人會知道這個操作,你可以直接在Windows下雙擊這個jar檔,或是

%cd MyProject/classes

%java -jar app1.jar

把class包進package中

Step 1:選擇package名稱

ㄚ琪以com.blogspot.ijx為例。此class的名稱為PackageExercise,因此完整的名稱會是:com.blogspot.ijx.PackageExercise。

說起ijx.blogspot.com,ㄚ琪可是跑了一整天的程式才找到ijx是目前可以用的最簡潔的網址了,有空去看看吧,不過現在可能沒有東西。

Step 2:在class中加入package指令

這個ㄚ琪就不多說了。

Step 3:設定相對應的目錄名稱

編譯與執行package

加上-d(directory)旗標來編譯

%cd MyProject/source

%java -d ../classes com/blogspot/ijx/*.java

-d 旗標會要求編譯器姜編譯結果根據package的結構來建立目錄與輸出,如果目錄還沒有建好,編譯器會自動的處理這些工作

執行程式

%cd MyProject/classes

%java com.blogspot.ijx.PackageExercise

 以package建構可執行的JAR

Step 1:確定所有的class檔都放在classes目錄下正確對應的package結構中

Step 2:建購manifest.txt檔來描述哪個class帶有main(),以及確認有使用完整的class名稱!

在manifest.txt寫入一行:

Main-Class : com.blospot.ijx.PackageExercise

然後把manifest檔案放到class目錄下

Step 3:執行jar工具來建構帶有目錄結構與manifest的JAR檔案

%cd MyProject/classes

%jar -cvmf manifest.txt packEx.jar com

Java Web Start

使用者能透過點選網頁上的某個連結來啟動Java Web Start的應用程式。一旦程式下載後,它就能獨立於瀏覽器之外來執行。事實上,Java Web Start應用程式只不過是透過網路來散布的應用程式而已。

Java Web Start的運作方式

Step 1:用戶端點選某個網頁上JWS應用程式的link(.jnlp檔)

Step 2:網頁伺服器收到request送出.jnlp檔案(不是JAR)給用戶端的瀏覽器

Step 3:瀏覽器啟動Java Web Start,JWS的helper app讀取.jnlp檔案,然後向伺服器要求MyApp.jar

Step 4:網頁伺服器送出.jar檔

Step 5:JWS取得JAR並呼叫指定的main()來啟動應用程式

之後使用者就可以在離線的情況下透過JWS來啟動應用程式

.jnlp檔案

.jnlp檔案(Java Network Lanuch Protocol)來製作Java Web Start的應用程式。.jnlp檔案是個簡單的XML文件,會有這樣的內容:

建構與佈署Java Web Start的步驟

Step 1:將程式製作程可執行的JAR

Step 2:撰寫.jnlp檔案

Step 3:網站jnlp與JAR檔案放到伺服器

Step 4:將網頁伺服器設定新的mime類型
application/x-java-jnlp-file
這會讓網頁伺服器以正確的header送出.jnlp資料,如此才能讓瀏覽器知道所接收的是什麼

Step 5:設定網頁連結到.jnlp檔案
<HTML>
<BODY>
<a href=”MyApp2.jnlp”>Launch My Application</a>
</BODY>
</HTML>

呼,熱吧!

感謝你看到這裡,很快就可以離開了,但最好的獎勵行動就是按一下幫我分享或留言,感恩喔~

點我分享到Facebook

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *